最近在捣鼓控制RGB全彩灯的实验;我看了火哥F4板子上的全彩灯程序,是通过随机数发生器产生随机数,然后修改TIM定时器中各通道比较寄存器的值改变占空比控制RGB;但是我用的是F1的,没有F2/F4中那样能够产生随机数的函数;所以借鉴了网上的一些思路。F1产生随机数可以结合C库来实现;主要函数就是srand(unsigned seed)和rand()两个函数,srand(unsigned seed)通过修改seed的值,可以为rand()提供不同的伪随机数数列;rand()函数就可以产生一系列的随机数。而这个种子怎么来,网友给了很多方法,这里可以使用悬空的ADC来实现,如下图一;还有说可以用srand((uint16_t)time(NULL))来作种子源,但是编译的时候会出错。这个方法需要包含time.h,所以我看了下这个头文件,把这个函数改成了srand((uint16_t)clock()),编译通过了,我看了串口,好像也可以产生随机数,具体正确与否,我布吉岛,我是真的很新手,求火哥和友友指点下 |