本帖最后由 Lixdong 于 2019-7-17 14:27 编辑
新手求教,调试结果如图
接受第二个也是存到a
串口发送2435,串口只能接受到24程序就运行不下去了,还都是存到a,变量RS232_RX_CNT的值也不增加,请问程序有什么BUG吗?
下面是串口中断程序
u8 RS232_RX_BUF[200]; //接收缓冲,最大200个字节.
u8 RS232_RX_CNT=0; //接收到的数据长度
void USART2_IRQHandler(void) //串口2中断服务程序
{
u8 Res;
u8 a,b,c,d;
if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) //接收到数据
{
Res =USART_ReceiveData(USART2);//(USART2->DR); //读取接收到的数据
if(RS232_RX_CNT<64)
{
RS232_RX_BUF[RS232_RX_CNT]=Res; //记录接收到的值
RS232_RX_CNT++; //接收数据增加1
}
a=RS232_RX_BUF[0];
b=RS232_RX_BUF[1];
c=RS232_RX_BUF[2];
d=RS232_RX_BUF[3];
}
RS232_RX_CNT=0;
}
请问这个中断服务程序是正确的吗?若是不正确请帮忙修正一下,多谢!
想通过串口助手发送存一个字符串,然后摘取里面的字符作为控制指令用
一周热门 更多>