高中生
最后登录1970-1-1
在线时间 小时
注册时间2020-7-16
|
1火花
如题,我想要当单片机接收到三个字节的数组,判断第三个字节是否为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{}
- }
- }
复制代码
|
|