- 更新2022.07.27/串口处理函数判断标志字节,出现错误
else if((Ser4_TDL_CL&0xf0)==0x10)//本地按键发送NVR
else if((Ser4_TDL_CL&0xf0)==0x40)//北斗
不严谨,应改为
else if((Ser4_TDL_CL&0x10)==0x10)//本地按键发送NVR
else if((Ser4_TDL_CL&0x40)==0x40)//北斗
- 以下为之前的记录
void DEBUG_USART_IRQHandler(void)
{
uint8_t ucTemp;
if(USART_GetFlagStatus(USART1,USART_IT_RXNE)!=RESET)
{
ucTemp = USART_ReceiveData(USART1);
USART_SendData(USART1,ucTemp);
}
}
中
if(USART_GetFlagStatus(USART1,USART_IT_RXNE)!=RESET)
用法错误,实际应为
if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)
具体解释查看关于STM32的USART_GetFlagStatus和USART_GetITStatus解析(异步通信)
二、
..\..\User\stm32f10x_it.c(72): error: #20: identifier "DEBUG_USARTx" is undefined
错误提示是因为.c文件未添加相应的头文件,导致定义的函数名为识别,应将
#include "bsp_usart.h"
加入到.c前。