OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 143|回复: 6

STM32F103VGT6串口3发送数据丢包问题??

[复制链接]

  离线 

9

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2017-10-14
在线时间
18 小时
发表于 2018-4-17 16:34:39 | 显示全部楼层 |阅读模式
5金钱
下面为初始化代码:
void uart_init(u32 bound){
  GPIO_InitTypeDef GPIO_InitStructure;
        USART_InitTypeDef USART_InitStructure;
       
        /* config USART3 clock */
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
        /* USART1 GPIO config */
        /* Configure USART3 Tx (PB.10) as alternate function push-pull */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);   
        /* Configure USART3 Rx (PB.11) as input floating */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
       
        /* USART3 mode config */
        USART_InitStructure.USART_BaudRate = bound;
        USART_InitStructure.USART_WordLength = USART_WordLength_8b;
        USART_InitStructure.USART_StopBits = USART_StopBits_1;
        USART_InitStructure.USART_Parity = USART_Parity_No ;
        USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
        USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
        USART_Init(USART3, &USART_InitStructure);
       
        USART_Init(USART3,&USART_InitStructure);
  //USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);//¿aÆô′®¿ú½óêüÖD¶Ï
  USART_Cmd(USART3, ENABLE);                    //ê1Äü′®¿ú3
}
下面为仿真时寄存器数据及测试部分数据丢失现象截图
QQ截图20180417162210.png

测试数据丢失,此现象不是个例...............
QQ截图20180417162538.png
使用STM32CUBE配置过一个同样的串口3发送数据,未出现丢包现象,请问有没有人遇到过同样的问题,请高手赐教???????

最佳答案

查看完整内容[请看2#楼]

你的write函数中,发送完数据之后是不是没有等待发送完成标志位清零?
回复

使用道具 举报

  离线 

2

主题

71

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
294
金钱
294
注册时间
2017-7-18
在线时间
57 小时
发表于 2018-4-17 16:34:40 | 显示全部楼层
你的write函数中,发送完数据之后是不是没有等待发送完成标志位清零?
回复

使用道具 举报

  在线 

489

主题

9万

帖子

30

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
125100
金钱
125100
注册时间
2010-12-1
在线时间
1055 小时
发表于 2018-4-18 01:35:19 | 显示全部楼层
棒棒的
回复

使用道具 举报

  离线 

9

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2017-10-14
在线时间
18 小时
 楼主| 发表于 2018-4-18 08:27:49 | 显示全部楼层

原子哥,求指导!!!!
回复

使用道具 举报

  离线 

11

主题

127

帖子

0

精华

初级会员

Rank: 2

积分
196
金钱
196
注册时间
2017-7-17
在线时间
44 小时
发表于 2018-4-18 09:35:00 | 显示全部楼层
正点原子公众号
这个可能性太多了。可能是你的串口时钟太慢,跟不上系统执行程序的速度。你在几个write()之间延时1个毫秒看看。
回复

使用道具 举报

  离线 

9

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2017-10-14
在线时间
18 小时
 楼主| 发表于 2018-4-18 13:27:17 | 显示全部楼层
candylife9 发表于 2018-4-18 09:35
这个可能性太多了。可能是你的串口时钟太慢,跟不上系统执行程序的速度。你在几个write()之间延时1个毫秒 ...

延时试过了,没效果
回复

使用道具 举报

  离线 

9

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
121
金钱
121
注册时间
2017-10-14
在线时间
18 小时
 楼主| 发表于 2018-4-18 14:57:25 | 显示全部楼层
周易八索连山 发表于 2018-4-18 09:50
你的write函数中,发送完数据之后是不是没有等待发送完成标志位清零?

嗯,谢谢
回复

使用道具 举报

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

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-4-27 01:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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