| 本帖最后由 forgot 于 2023-11-11 17:57 编辑 
 
     为了对CW32L031 StartKit开发板实现拓展功能开发,决定采用OLED液晶显示SPI FLASH、I2C EEPROM、和ADC的测试过程;     首先在工程中添加OLED相关的.c和.h文件,在main中添加OLED_Configuration();OLED_Init();初始化函数; 因为采用的是PB12和PB13作为OLED的I2C线进行模拟时序,所以要增加这两个GPIO的初始化相关函数; #define OLED_SCLK_Clr() PB12_SETLOW();
#define OLED_SCLK_Set() PB12_SETHIGH();
#define OLED_SDIN_Clr() PB13_SETLOW();
#define OLED_SDIN_Set() PB13_SETHIGH();
 添加.c相关文件: 
 还需要增加.h的路径: 
   在while(1)中各个TEST位置加入OLED信息打印,保留原来的串口LOG打印;  OLED_Poweron();
        while(1)
        {
                gKey2Status = 0;
                //wait key is press
                do
                {
                        /* Toggle LED */
                        LED1_TOG;
                        SysTickDelay(1000);        //1s.
                }while (gKey2Status == 0);
                //test start
                printf("\r\nCW32F030 StartKit Board Test\r\n");        
                OLED_Show(0,"SPI TEST START","FLASH");
                SPI_FLASH_Test();
                SysTickDelay(1000);
                OLED_Show(0,"I2C TEST START","EEPROM");
                I2C_Test();
                SysTickDelay(1000);
                OLED_Show(0,"ADC TEST START","PA00");
                ADC_Test();
                SysTickDelay(1000);
                OLED_Show(0,"TEST END","bbs.21ic.com");
                printf("\r\nCW32F030 StartKit Board Test OK\r\n");
                for(uint8_t j = 0; j < 3; j++)
                {
                                LED1_OFF;
                                SysTickDelay(100);
                                LED1_ON;
                                SysTickDelay(100);
                }
                
        }
 
   开机OLED显示,后面启动测试每隔开1S测试一个功能; 
 开机显示: **************** CW32L031 StartKit **************** 
 通过按钮启动测试后,先显示: SPI TEST START FLASH 
  间隔1s 
 FLASH测试完成之后显示: I2C TEST START EEPROM    间隔1s 
 EEPROM测试完成之后显示: ADC TEST START PA00    间隔1s 
 最后显示: TEST ENDbbs.21ic.com
 
 
 
 |