如果需要显示一个变量的更新,就需要使用到数字显示函数,实现数字的显示
- #include "hc32_ddl.h"
- #include "oled.h"
- /* LED0 Port/Pin definition */
- #define LED0_PORT (PortE)
- #define LED0_PIN (Pin06)
- /* LED1 Port/Pin definition */
- #define LED1_PORT (PortA)
- #define LED1_PIN (Pin07)
- /* LED2 Port/Pin definition */
- #define LED2_PORT (PortB)
- #define LED2_PIN (Pin05)
- /* LED3 Port/Pin definition */
- #define LED3_PORT (PortB)
- #define LED3_PIN (Pin09)
- /* LED0~3 toggle definition */
- #define LED0_TOGGLE() (PORT_Toggle(LED0_PORT, LED0_PIN))
- #define LED1_TOGGLE() (PORT_Toggle(LED1_PORT, LED1_PIN))
- #define LED2_TOGGLE() (PORT_Toggle(LED2_PORT, LED2_PIN))
- #define LED3_TOGGLE() (PORT_Toggle(LED3_PORT, LED3_PIN))
- #define DLY_MS (100ul)
- void led_init(void)
- {
- stc_port_init_t stcPortInit;
- /* configuration structure initialization */
- MEM_ZERO_STRUCT(stcPortInit);
- stcPortInit.enPinMode = Pin_Mode_Out;
- stcPortInit.enExInt = Enable;
- stcPortInit.enPullUp = Enable;
- PORT_Init(LED0_PORT, LED0_PIN, &stcPortInit);
- PORT_Init(LED1_PORT, LED1_PIN, &stcPortInit);
- PORT_Init(LED2_PORT, LED2_PIN, &stcPortInit);
- PORT_Init(LED3_PORT, LED3_PIN, &stcPortInit);
- }
- void led_run(void)
- {
- LED0_TOGGLE();
- Ddl_Delay1ms(DLY_MS);
- LED1_TOGGLE();
- Ddl_Delay1ms(DLY_MS);
- LED2_TOGGLE();
- Ddl_Delay1ms(DLY_MS);
- LED3_TOGGLE();
- Ddl_Delay1ms(DLY_MS);
- }
- void oled_pin_init(void)
- {
- stc_port_init_t stcPortInit;
- /* configuration structure initialization */
- MEM_ZERO_STRUCT(stcPortInit);
- stcPortInit.enPinMode = Pin_Mode_Out;
- stcPortInit.enPinOType = Pin_OType_Od;
- stcPortInit.enExInt = Enable;
- stcPortInit.enPullUp = Enable;
- PORT_Init(SCL_PORT, SCL_PIN, &stcPortInit);
- PORT_Init(SDA_PORT, SDA_PIN, &stcPortInit);
- //配置好后,等待片刻,给硬件以准备时间。
- Ddl_Delay1ms(100);
- }
- int32_t main(void)
- {
- int i;
- int num=0;
- led_init();
-
- oled_pin_init();
-
- OLED_Init();//初始化OLED
- OLED_ColorTurn(0);//0正常显示,1 反色显示
- OLED_DisplayTurn(0);//0正常显示 1 屏幕翻转显示
- for(i=0;i<8;i++)
- OLED_ShowChinese(i*16,0,i,16); //第一个是列坐标,字符是16×16,第二个是行开始的坐标,单位是8。第三个是写入第几个字符的数组编号
- for(i=0;i<5;i++)
- OLED_ShowChinese(24+i*16,2,i+8,16); //第一个加24,为了居中对齐。
- Ddl_Delay1ms(1500);
- OLED_ShowString(0,2,"-21ic-HC32F460-",16);
- Ddl_Delay1ms(1500);
- OLED_ShowString(0,2,"HC32F460--0000--",16);
-
- while(1)
- {
- led_run();
- OLED_ShowNum(80,2,num++,4,16);
- if(num>10000) num=0;
- }
- }
|