【分享学习篇】OneNET麒麟座开发之 跑马灯、PWM呼吸灯实
浏览量:445 回帖数:0
1楼
今天,让我用花式的方法来实现这几盏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};
今天,让我用花式的方法来实现这几盏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};
2017/3/10 6:46:44