聚丰项目 > 基于AB32的uart控灯
基于AB32开发板开发一个控制灯光的设备,即蓝牙控制灯光。然而实际上,AB32上面蓝牙模块,很难实现,目前还没有成熟,只能退而其次,串口通信,既是UART串口。我制作两个设备,一个是主设备,另一个从设备。主设备(AB32开发板)上开启uart串口,PA3和PA4引脚,连接到从设备。从设备可以是arduino开发板,也可以是STM32开发板,也可以是esp8266,等等,其中只要有uart串口功能。从主设备发送"uart 1"到从设备,当从设备检测到“uart 1”,则打开LED;发送“uart 0”,则关灯。 设计作品思路如下图:
rx_ted
分享rx_ted
团队成员
rx_ted 学生
整体架构:
内核部分:使用了线程、信号量、互斥量、定时器
硬件部分:AB32开发板、arduino wemos R1开发板、若干LED和电线
软件包:
blueturm(蓝牙模块)等
设备驱动:
GPIO/BLE/UART/I2C 等
软件中间使用了部分信号量和互斥量保证线程同步。跟uart_sample这个例子原理差不多。
首先查找系统中的串口设备,等找到串口设备,例如“uart1”,找到了就打开串口设备,将输入命令复制到临时变量字符串。
接着初始化信号量,一旦接收到输入字符串,则发送这命令。
然后创建线程,继续等待输入。
根据这样的原理而获得流程:搜索串口设备->打开串口设备->接收回调->信号中断->发送命令->开灯关灯。