|
在解决入门篇烧录问题后(具体解决过程附在此文后),正式进入到开发板调试使用阶段。开发板上有一颗现成的OLED灯,在此做一个间隔红、绿、蓝、白间隔5s循环显示的小程序,附代码如下:
int main(void)
{
RESET->NRST_EN =0;
Delay32M_ms(1000);
CLIC_Init();
SysClock_Crystal_Mode_Init();
NVIC_EnableIRQ(SysTick_IRQn);
SysTick_mtime->MTIME = 0;
SysTick_mtimecmp->MTIMECMP = 3200000-1;
UART_eeprintf_Init(UART1,115200);
ee_printf("SystemClk:%d\r\n", SystemCoreClock);
ee_printf("CSM32RV003 Project\r\n");
GPIO_MODE_Init(GPIOA,PIN8,GPIO_MODE_OUTPUT);
GPIO_MODE_Init(GPIOA,PIN9,GPIO_MODE_OUTPUT);
GPIO_MODE_Init(GPIOA,PIN12,GPIO_MODE_OUTPUT);
#if 0
for(uint8_t i=0;i<10;i++)
{
GPIO_Toggle(GPIOA,PIN8);
Delay16M_ms(100);
}
#endif
while(1)
{
ee_printf("turn off oled\r\n");
GPIO_Write(GPIOA,PIN12,GPIO_SET);
GPIO_Write(GPIOA,PIN9,GPIO_SET);
GPIO_Write(GPIOA,PIN8,GPIO_SET);
ee_printf("turn oled red\r\n");
GPIO_Write(GPIOA,PIN12,GPIO_RESET);
GPIO_Write(GPIOA,PIN9,GPIO_SET);
GPIO_Write(GPIOA,PIN8,GPIO_SET);
Delay16M_ms(5000);
ee_printf("turn oled green\r\n");
GPIO_Write(GPIOA,PIN12,GPIO_SET);
GPIO_Write(GPIOA,PIN9,GPIO_RESET);
GPIO_Write(GPIOA,PIN8,GPIO_SET);
Delay16M_ms(5000);
ee_printf("turn oled blue\r\n");
GPIO_Write(GPIOA,PIN12,GPIO_SET);
GPIO_Write(GPIOA,PIN9,GPIO_SET);
GPIO_Write(GPIOA,PIN8,GPIO_RESET);
Delay16M_ms(5000);
ee_printf("turn oled white\r\n");
GPIO_Write(GPIOA,PIN12,GPIO_RESET);
GPIO_Write(GPIOA,PIN9,GPIO_RESET);
GPIO_Write(GPIOA,PIN8,GPIO_RESET);
Delay16M_ms(5000);
}
}
编译烧录.elf文件,日志如下:
![CSM32RV003_log.png](
视频效果如下:
附解决烧录问题:
![烧录器正面.jpg](
烧录器正面
![烧录器反面.jpg](
烧录器反面
1.安装好CJLINK驱动,在电脑设备管理器可以看到显示CJLINK安装上了
2.IDE的Adapter下级菜单选CJlink Adapter
3.在main函数里加入复位脚定义并稍做延时,便于后面方便用isp串口多次烧录4.接烧录线,开发板端按引脚定义。我遇到的坑就在下面这里:注意CJLINK调试器硬件版本V1.2 ,烧录器排针引脚与丝印对不上,正确做法如下图示意
![烧录器正确烧录接线.png](
编译,在IDE里点download图标,开发板就复活了,后面isp串口烧录没问题了!
CSM32RV003_oled
|