金牌会员
 
- 积分
- 1625
- 金钱
- 1625
- 注册时间
- 2014-7-11
- 在线时间
- 285 小时
|
1金钱
STM32接收16进制数怎么不正常
我现在在做UASRT,用串口助手时,接受的字符串值正确的,但是在接收16进制数时接受就不正确了,接收数组前半截的数据丢了,请问这是怎么回事
void USART3_IRQHandler(void)//当接收到数据为0x16时停止接收 ------------------2016-6-25 ok
{
u8 res;
if(USART3->SR&(1<<5))//接收到数据
{
res=USART3->DR;
if(RS485_RX_CNT3<64)
{
RS485_RX_BUF3[RS485_RX_CNT3]=res; //记录接收到的值
RS485_RX_CNT3++; //接收数据增加1
}
}
}
void RS485_Receive_Data5(u8 *buf) //---------------------------------------
{
u8 rxlen=RS485_RX_CNT3;
u8 i=0;
// *len=0; //默认为0
delay_ms(10); //等待10ms,连续超过10ms没有接收到一个数据,则认为接收结束
if(rxlen==RS485_RX_CNT3&&rxlen)//接收到了数据,且接收完成了
{
for(i=0;i<rxlen;i++)
{
buf2[i]=RS485_RX_BUF3[i];
}
// *len=RS485_RX_CNT3; //记录本次数据长度
RS485_RX_CNT3=0; //清零
}
}
这是接收函数,请问是怎么回事
|
|