初级会员

- 积分
- 185
- 金钱
- 185
- 注册时间
- 2017-6-19
- 在线时间
- 90 小时
|
5金钱
如题,我想要当单片机接收到三个字节的数组,判断第三个字节是否为0X01,假如判断为真,LED闪烁。我用串口调试助手发送{0X12 0X34 0X01}和{0X12 0X34 0X02}结果LED均闪烁,代码如下,求指教~
PS:我这个里面没有对USART_RX_BUF里面的i进行清零的处理,不知道是不是这个问题,如果是的话,应该在什么位置清零呢?
/******************************************************************************************/
- u8 i=0;
- u8 USART_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节 200字节.
- void USART1_IRQHandler(void) //中断服务函数
- {
- if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断
- {
- USART_ClearITPendingBit(USART1,USART_IT_RXNE); //清除标志位
- USART_RX_BUF[i]=USART_ReceiveData(USART1); //读取接收到的数据
- i++;
- if(USART_RX_BUF[2]==0X01)
- {
- LED0=~LED0;
- delay_ms(200);
- LED0=~LED0;
- }
- else{}
- }
- }
复制代码
|
|