本帖最后由 REG52 于 2024-3-21 18:29 编辑
Rd-03E也用了一段时间,本人能力有限,有想过去搞点不一样的,但实在不知道弄啥,就还是手势控个灯吧,再说一下学习过程中的一些经验。
先上作品:
板子是STM32F103C8
RX---PA9,OT1---PA10,PA1---LED模块
实现:
整体基于32的标准库,出厂的固件为手势识别固件,原理参照手势识别固件手册
核心代码:
- void USART1_IRQHandler(void)
- {
- static uint8_t RxState=0; //状态变量
- static uint8_t pRxState=0; //指示变量
- if(USART_GetITStatus(USART1,USART_IT_RXNE)==SET) //判断是否是USART1的接收事件触发的中断
- {
- uint8_t RxData = USART_ReceiveData(USART1);
- if(RxState==0)
- {
- if(RxData==0xAA)
- {
- RxState=1;
- pRxState = 0;
- }
- }else if(RxState==1)
- {
- Serial_RxPacket[pRxState]=RxData;
- pRxState++;
- if(pRxState>=3)
- {
- RxState = 2;
- }
- }else if(RxState==2)
- {
- if(RxData==0x55)
- {
- RxState=0;
- Serial_RxFlag = 1;
- }
- }
- USART_ClearITPendingBit(USART1,USART_IT_RXNE);//读取数据寄存器会自动清除此标志位
- //如果已经读取了数据寄存器,也可以不执行此代码
- }
- }
复制代码 现象:
直接上视频:
【手势控灯】 https://www.bilibili.com/video/B ... 11584e0ae49f5cbae1b
经验:
手册一定要去看,一定要接5V,识别时要有个1.5S左右的间距,不要觉得很难,用上位机时要看清型号(RD-03E),出厂刷的是手势识别固件。(以上都是本人遇到过的问题,了解原理后才知道很简单。)
|