图列说明网站开发的流程,wordpress4.5.3漏洞,名校建设网站,中国会出兵吗本文是解决 同时在 定时器中点灯 与 LCD屏幕显示 冲突异常的问题
我们大家都知道#xff0c;G431RBT6开发板上led与lcd是冲突的#xff0c;所以在lcd.c文件中的这三个函数中
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
void LCD_WriteRAM_Prepare(void)
void LCD_Wr…本文是解决 同时在 定时器中点灯 与 LCD屏幕显示 冲突异常的问题
我们大家都知道G431RBT6开发板上led与lcd是冲突的所以在lcd.c文件中的这三个函数中
void LCD_WriteReg(u8 LCD_Reg, u16 LCD_RegValue)
void LCD_WriteRAM_Prepare(void)
void LCD_WriteRAM(u16 RGB_Code)的头跟尾分别加这两句话
uint16_t temp GPIOC-ODR;
GPIOC-ODRtemp;就可以避免冲突。
但是如果有定时器的参与点灯的话是否也正常呢 答案是不行
示例 在这个代码中我定义的是led灯每隔1s闪烁但实际情况其他灯也会闪烁这是为什么呢
在这段lcd的代码中1和3在上文已经说过是防止led与lcd冲突的代码。但是增加了定时器后情况就变了万一代码运行到2的位置定时器就直接中断回调函数后是不是刚刚保存下的的temp 的值都还没有来得及赋给GPIOC-ODR。所以就会导致led异常。
解决方案
结论 定时器中不要执行点灯操作只需要执行点灯标志位在while1函数中执行点灯就可以避免在定时器中无法点灯的情况