[应用方案] HC32F0653+OLED显示测评

[复制链接]
658|0
wuyu40 发表于 2025-9-28 09:06 | 显示全部楼层 |阅读模式


申请原创@21ic小管家
默认已经安装MDK5,接着安装cpu支持包:
3007768d889b8bee9b.png
连接好硬件之后,打开一个工程进入魔术棒设置,出现图示信息,表示可以下载调试:
2937168d889cda00a7.png
OLED文件夹添加到工程,并且将头文件添加到工程:
4816868d889de4125f.png
修改void OLED_Init(void)初始化函数:
GPIO_Config_t config;
config.pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;     /* ??GPIOA_PIN9 */
  config.dir = GPIO_DIRECTION_OUT; /* 输出*/
  config.mode = GPIO_OTYPE_PP;     /* 推挽模式 */
  config.pu = GPIO_PULL_UP;        /* 上拉 */
  config.analog = GPIO_DIGITAL;    /* 数字IO模式 */
  GPIO_Init(GPIOB, &config);
        GPIO_SetBit(GPIOB, GPIO_PIN_8);
        GPIO_ResetBit(GPIOB, GPIO_PIN_9);
config.pin = GPIO_PIN_6|GPIO_PIN_7;      
  config.dir = GPIO_DIRECTION_OUT;
  config.mode = GPIO_OTYPE_OD;     /* 开漏模式 */
  config.pu = GPIO_PULL_UP;        
  config.analog = GPIO_DIGITAL;   
  GPIO_Init(GPIOB, &config);
PB6789作为OLED接口,P89作为电源输入PB67作为I2CSDASCL
#define OLED_SCL_Clr() GPIO_ResetBit(GPIOB, GPIO_PIN_7);//SCL
#define OLED_SCL_Set() GPIO_SetBit(GPIOB, GPIO_PIN_7);

#define OLED_SDA_Clr() GPIO_ResetBit(GPIOB, GPIO_PIN_6);//DIN
#define OLED_SDA_Set() GPIO_SetBit(GPIOB, GPIO_PIN_6);
在合适位置调用GPIOB时钟初始化函数:
RCC_AHBPeriphEnable(RCC_AHB_PERIPH_GPIOB, ENABLE);
之后按照出现error和警告提示逐个修改,在main中写OLED设置函数:
        OLED_Init();
        OLED_ColorTurn(0);//0正常显示,1 反色显示
  OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
  while (TRUE) {
                OLED_Refresh();
                Delay_ms(200);
                OLED_Clear();
                OLED_ShowChinese(0,0,0,16,1);//
                OLED_ShowChinese(18,0,1,16,1);//
                OLED_ShowChinese(36,0,2,16,1);//
                OLED_ShowChinese(54,0,3,16,1);//
                OLED_ShowChinese(72,0,4,16,1);//
                OLED_ShowChinese(90,0,5,16,1);//
                OLED_ShowChinese(108,0,6,16,1);//
                OLED_ShowString(8,16,"ZHONGJINGYUAN",16,1);
                OLED_ShowString(20,32,"2014/05/01",16,1);
                OLED_ShowString(0,48,"ASCII:",16,1);  
                OLED_ShowString(63,48,"CODE:",16,1);
               
                OLED_Refresh();
                Delay_ms(200);
                OLED_Clear();
                OLED_ShowChinese(0,0,0,16,1);  //16*16
          OLED_ShowChinese(16,0,0,24,1); //24*24
                OLED_ShowChinese(24,20,0,32,1);//32*32
          OLED_ShowChinese(64,0,0,64,1); //64*64
                OLED_Refresh();
          Delay_ms(200);
          OLED_Clear();
                OLED_ShowString(0,0,"ABC",8,1);//6*8 “ABC”
                OLED_ShowString(0,8,"ABC",12,1);//6*12 “ABC”
          OLED_ShowString(0,20,"ABC",16,1);//8*16 “ABC”
                OLED_ShowString(0,36,"ABC",24,1);//12*24 “ABC”
          OLED_Refresh();
                Delay_ms(200);
                OLED_ScrollDisplay(11,4,1);}
最后给出调试图片:
3597868d889f166a8e.png

您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

73

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部