新手上路
- 积分
- 46
- 金钱
- 46
- 注册时间
- 2020-7-14
- 在线时间
- 15 小时
|
5金钱
u8 receive_flag=0;
void USART1_IRQHandler(void)
{
u8 Data;
BaseType_t xHigherPriorityTaskWoken;
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //
{
Data=USART_ReceiveData(USART1); ////(USART1->DR); //
if(USART_RX_STA<=1) //ÅD¶ÏÖ¡í·
{
if(Data==0x53) //判断帧头
{
USART_RX_BUF[USART_RX_STA]=Data;
USART_RX_STA++;
}
else
{
memset(USART_RX_BUF,0,USART_REC_LEN);//清空缓存
USART_RX_STA=0;
}
}
if(1<USART_RX_STA<USART_REC_LEN)
{
if(Data==0x45)
{
USART_RX_BUF[USART_RX_STA]=Data;
receive_flag=1;
USART_RX_STA=0;
}
else
{
USART_RX_BUF[USART_RX_STA]=Data;
USART_RX_STA++;
}
}
if(USART_RX_STA>USART_REC_LEN)
{
memset(USART_RX_BUF,0,USART_REC_LEN);//清空缓存
USART_RX_STA=0;
}
}
}
|
最佳答案
查看完整内容[请看2#楼]
1.检查硬件:示波器测量RXD脚在串口助手给它发数据时是否有波形。
2.检查是否进中断:中断服务程序里让某个IO取反,示波器监测。
3.检查波特率是否正确:主动往外发送数据(如0xAA),示波器看TXD脚波形,判断波特率。
|