【分享学习篇】OneNET麒麟座开发之 跑马灯、PWM呼吸灯实
返回本版】  【发表帖子】  【回复帖子 浏览量  431      回帖数 0
mnbvcxz    等级  ★★★

楼主 发表于  2017/3/10 6:46:44    编 辑   


今天,让我用花式的方法来实现这几盏LED。
OneNet板子的核心是stm32f103,这块72MHz的单片机,还是cortex-M内核的,所以速度很快的,我们可以玩个PWM控灯,并且肉眼看不出闪烁。


灯慢慢变亮然后再变暗的效果称为“呼吸”,这个效果在一些游戏鼠标上常见。下面让我们一起来“高仿”一下这个“呼吸效果”。


当然,在玩PWM以前,我们要先构建一个高速的延时函数。
毫秒级的太弱了,我们来做个微秒级别的延时吧。
函数名字我也想好了,就叫microDelay1吧,定时变量用个32位的uint32_t。这样的话,即使延时个1小时,应该也够用了。

这个微秒延时函数是如下这样的




然后,为了定义闪烁次数和led灯的数量,我们需要再建两个变量。
int blinkii=0,ledii=0;


4盏Led灯所在的GPIO引脚分别是6、7、8、9,我们可以定义一个数组来存这4个引脚
uint16_t leds[4]={0x0040,0x0080,0x0100,0x0200};


1
表情
所有内容均为会员自愿发表,并不代表本站立场.

您输入的密码有误,请重新输入