赞
踩
不知道大家在开发过程中有没有碰到:LCD与LED同时(宏观上的同时)点亮时产生的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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。