金牌会员
 
- 积分
- 1625
- 金钱
- 1625
- 注册时间
- 2014-7-11
- 在线时间
- 285 小时
|
1金钱
STM32串口怎么设置,为什么接收会丢失前几位数据
我最近在做串口接收和发送数据,是偶校验,用串口助手接收正常,用别的设备就不行,请问怎么回事
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=RS485_RX_BUF3;
}
// *len=RS485_RX_CNT3; //记录本次数据长度
RS485_RX_CNT3=0; //清零
}
}
这是 接收部分
USART3->CR1|=0X340C; //1位停止,偶校验位.
这是 初始化的偶校验部分
|
|