初级会员

- 积分
- 156
- 金钱
- 156
- 注册时间
- 2014-5-15
- 在线时间
- 54 小时
|
30金钱
本帖最后由 saiyqx 于 2016-3-31 20:07 编辑
RT。。目前做的一个项目使用STM32ZET6通过CH340USB转串口与上位机进行通讯,有个问题想请教下论坛的高手,我现在可以发送也可以接收数据,但数据经常性的丢失,发送的数据也不是很多20组含9个元素(数据为8位)的数组,而接收上位机数据时也会出现丢失现象。。试着通过串口助手来调试,发现串口助手如果自动发送数据的间隔低于210ms的话,板子就会死掉。。无法接收。。项目对数据的实时性有点要求。。想请教下有没有比较好的方法。。十分感谢。。
发送函数如下:
/***************************************************************
**函数名称:Send_Data(u8 Channel) **
**函数功能: 通道1检测 **
** 参数:Channel 所要检测的通道号 **
** flag_Success 发射成功标志位 **
** again 数据重复发送标志位 **
***************************************************************/
void Send_Data(u8 Channel)
{
u8 j=0;
u8 i=0;
flag_Success = 0;
again = 0;
USART_RX_BUF[0] = 0;
while(flag_Success == 0)
{
if(again == 0)
{
for(j=0;j<9;j++)
{
USART_SendData(USART1,table_Channle_data[Channel][j]); //向串口1发送通道1的数据
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET); //等待发送结束
delay_ms(2);
}
USART_RX_STA=0;
again = 1;
}
delay_ms(5);
if(USART_RX_BUF[0] == 0x01)
flag_Success = 1;
if(USART_RX_BUF[0] == 0x02)
{
flag_Success = 0;
again = 0;
}
}
} |
|