zdly.net
当前位置:首页 >> stm32精英版串口控制lED灯 >>

stm32精英版串口控制lED灯

LED灯有控制芯片吗?有芯片的话,看看芯片手册,用USART来接芯片有点奇怪.一般单片机控制LED都是用GPIO来控制,用延时加上拉高拉低IO就可以了.

你先实现点亮LED和串口接收,然后写个状态机来处理接收到的数据

既然是初学者,这种问题最好自己解决,看STM32数据手册,上网找例程自己改,才能学到东西.main函数里必须要有while(1)或者是你说的for(;;),因为如果没有的话,程序执行完后会跑飞的,出现各种莫名其妙的错误.你main函数里除了初始化配置在while(1)前之外,所有的非中断程序都要在死循环里做.main如果没有while(1),程序执行完后就不知道跑到哪里了,不能这么干

1、首先,一般不会这么做,如果是LED(不是LCD)大屏,因为数据量并不大,直接用串口把数据发过去就行,但如果是点阵式LCD的话(RGB类的LCD则不行),一般串口也勉强能应付.总而言之,正常设计中不会直接使网口连接LED.2、如果的远程网络LED屏的架构,可以通过网口完成数据的传输,但同样不会直接用网口去连接LED屏.

总体相当简单,IO,定时器的PWM模式,USART双工通讯.中断接收或者大循环内接收都是可以的.你只要把要用的功能一个一个的凑起来就行了,先让灯亮起来,然后控制他的亮度,然后和电脑通讯,然后对接收的信息进行处理,处理完成,反馈结果就可以了

stm32的板子与PC连接所使用的线有无装好驱动,设备管理器中查看stm32中的UART驱动是否使能stm32中的VCP驱动是否使能

可以的,这里通过USART_ReceiveData返回DR寄存器的值,这个值赋给r变量,你完全可以写成if((USART_ReceiveData(USART1) & 0xFF) == 0x01)这个形式, 因为DR寄存器是16位的,通过位于操作获取低8位的数据,如果这8位数据等于0x01那么你就可以让LED进行闪烁.这个r变量可有可无.对于LED的取反,我们常用异或运算进行取反.

一个管脚接一个LED灯.图中的是PB2接了一个灯.你还有部分图片没有贴出来,PA2和PA3各接了一个LED灯.

把PC5-PC8都设置为输入,把PB0,1,14,15设置为输出.在程序while中检测pc5-8的输入管脚电平,来使能输出PB管脚的高低电平来点亮LED.逻辑很简单,希望你成功.

希望对你有帮助!首先楼主需要做几个事情:1、确定板子上LED灯的引脚位置是属于哪个口PORTA~PORTE2、例程内的端口是否与硬件上的端口一致.3、LED的驱动电平是高电平还是低电平.4、一个GPIO正常工作至少需要以下几点:a、系统时钟已经配置并正常运行.b、对应的GPIO时钟位已经打开(为了降低功耗,默认GPIO的时钟是不会打开的).c、对应的GPIO引脚已经正确配置(如果没有外上拉,应当配置为推挽输出).d、对应的GPIO引脚输出寄存器已经设置为对应的电平.5、程序正常下载的板子上.6、正常下载还不能使用,检查板子是否正常(电源电压是否达到要求?晶振是否起振?复位电平是否正确?)

网站首页 | 网站地图
All rights reserved Powered by www.zdly.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com