当前位置:   article > 正文

【蓝桥杯】一文解决蓝桥杯嵌入式开发板(STM32G431RBT6)LCD与LED显示冲突问题,并讲述LCD翻转显示_蓝桥杯32开发板

蓝桥杯32开发板

解决LCD与LED显示冲突问题

  不知道大家在开发过程中有没有碰到:LCD与LED同时(宏观上的同时)点亮时产生的LED状态紊乱问题

LCD与LED显示冲突现象图

  为了解决上述问题,小编给出了以下三种解决方案:
方案一:

  每次LCD显示完成数据后,关闭所有LED一次。
  但是使用该方法比较麻烦,并且如果想要反转LED的状态,还必须使用变量保存上一次LED的状态。详细代码可见下图:

方案2:借助寄存器BRR

  STM32中是将BRR定义为:
__IO uint32_t BRR; //!< GPIO Bit Reset register, Address offset: 0x28
  其意思为:GPIO 位复位寄存器;也就是说可以通过该寄存器将值复位(置0);
  由于HAL库中提供了该寄存器的操作接口,我们直接使用该接口即可:void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);,其中参数1为GPIO分组,参数2为GPIO引脚,参数3为重置或设置。
具体操作可见下图的详细代码:

方案3:修改LCD的显示函数

  通过阅读官方提供的LCD源码以及小编自己的LED显示函数,得知导致LED显示紊乱的“罪魁祸首”是LCD显示修改了LED对应引脚的值,那么我们是不是可以修改LCD的显示函数呢?

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/436373
推荐阅读
相关标签