初级会员

- 积分
- 122
- 金钱
- 122
- 注册时间
- 2018-12-24
- 在线时间
- 20 小时
|
1金钱
本帖最后由 Monsterzhang 于 2020-12-26 14:26 编辑
void USART1_IRQHandler(void)
{
uint8_t RecCh;
if( USART_GetFlagStatus(USART1,USART_FLAG_RXNE)!=RESET ) // 串口接收数据
{
USART_ClearFlag(USART1, USART_FLAG_RXNE); //清除中断标志
RecCh = (uint8_t)USART_ReceiveData(USART1);
g_USART1_RxBuf[g_USART1_RecPos] = RecCh; //串口接收缓冲区
g_USART1_RecPos++;
}
if( USART_GetFlagStatus(USART1,USART_FLAG_ORE)==SET ) // 串口溢出错误
{
USART_ClearFlag(USART1, USART_FLAG_ORE);
}
if( USART_GetFlagStatus(USART1,USART_FLAG_IDLE)==SET ) // 串口空闲中断
{
g_USART1_RxBuf[g_USART1_RecPos] = '\0';//串口接收缓冲区
rt_sem_release(usart1_recv_sem);
USART_ReceiveData(USART1);
}
}
上面是我的串口中断函数,现在是用串口助手发数据,接收到的数据存入g_USART1_RxBuf中,调试中发现:如果用调试助手发5A A5,出现是把5存入g_USART1_RxBuf[0],A存入g_USART1_RxBuf[1]这种情况,我现在是想把5A一起放入到g_USART1_RxBuf[0]中,求大神指教。。。
|
|