OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2893|回复: 0

关于STM32f103 C8T6 串口3DMA通信问题

[复制链接]

2

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2015-7-10
在线时间
9 小时
发表于 2019-2-17 16:49:56 | 显示全部楼层 |阅读模式
10金钱
各位大神,想请教下关于串口通信问题,选择配置串口3,接收和发送都由DMA完成,开启空闲中断,想实现RS485 modebus ascii协议;现出现的问题是,当我用串口助手自动50ms发送特定的字符串下去,32能正常回复正常的数据;但是当自动发送的时间小于50ms的时候,能接收到部分正确的数据,另外的部分为乱码;间隔时间越小,乱码越多,有时候甚至接收不到数据;

volatile u16 receivelen;
void USART3_IRQHandler(void)
{       
        u8 tem;
    if(USART_GetITStatus(USART3, USART_IT_IDLE) != RESET)  //
    {
       tem=USART3->SR;
       tem=USART3->DR;
       tem=tem;
        Config_If_Receive_State(ENABLE);
        RS485_First_Count = 1;
        USART_ReceiveData( USART3 );
        DMA_Cmd(DMA1_Channel2, DISABLE);
        DMA1_Channel2->CNDTR=0;
        DMA_Cmd(DMA1_Channel3, DISABLE);
        DMA1_Channel3->CNDTR=RxBufferSize ;
        DMA_Cmd(DMA1_Channel3, ENABLE);
        USART_ClearITPendingBit(USART3, USART_IT_IDLE); // ??????

}



三人行必有我师,不能太弱
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 19:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表