新手入门
- 积分
- 11
- 金钱
- 11
- 注册时间
- 2022-8-5
- 在线时间
- 2 小时
|
5金钱
本帖最后由 2310111932 于 2022-8-26 22:55 编辑
按两次发送键才接收到一次,这啥问题?
接收中断代码(HAL库):
void HAL_UART_RxCpltCallback(UART_HandleTypeDef*huart)
{
static uint16_t State=0;
static uint8_t P=0;
if(huart->Instance==USART1)
{
if(State==0 && RXData=='B')
{
State=1;
P=0;
}
else if(State==1)
{
if(RXData=='U')
State=2;
}
else if(State==2)
{
if(RXData=='L')
State=3;
}
else if(State==3)
{
if(RXData=='L')
State=4;
}
else if(State==4)
{
if(RXData=='E')
State=5;
}
else if(State==5)
{
if(RXData=='T')
State=6;
}
else if(State==6)
{
if(RXData==':')
State=7;
}
else if(State==7)
{
if(RXData=='\n')
{
State=8;
}
else
{
RXNum[P]=RXData;
P++;
}
}
else if(State==8)
{
LED0_OFF;
State=0;
HAL_UART_Transmit(&huart1,RXNum,sizeof(RXNum),100);
}
HAL_UART_Receive_IT(&huart1,&RXData,1);
}
}
|
|