OpenEdv-开源电子网

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

关于串口通信中的寄存器问题。

[复制链接]

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2016-8-22
在线时间
12 小时
发表于 2016-8-28 16:12:55 | 显示全部楼层 |阅读模式
5金钱
请教大神,这个函数是怎么实现接收数据的功能的?
捕获4.PNG

最佳答案

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

这个真不是个问题,请仔细看STM32的手册,DR寄存器只是个影子寄存器,对DR进行写操作时,访问的是TDR寄存器,也就是发送寄存器,对DR进行读操作时,访问的是RDR寄存器,也就是接收寄存器. 在STM32F0系统芯片的串口是,就没有DR寄存器,对于收发需要单独访问TDR和RDR,没有STM32F1及以上的芯片方便. STM32的串口数据位可以有9位的,但是9位数据位的情况下就不能配置奇偶校验位,配置带奇偶效验位,这个第9位就是校验位,是不会在DR寄存器中出现的 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

277

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1522
金钱
1522
注册时间
2014-5-16
在线时间
217 小时
发表于 2016-8-28 16:12:56 | 显示全部楼层
这个真不是个问题,请仔细看STM32的手册,DR寄存器只是个影子寄存器,对DR进行写操作时,访问的是TDR寄存器,也就是发送寄存器,对DR进行读操作时,访问的是RDR寄存器,也就是接收寄存器.
在STM32F0系统芯片的串口是,就没有DR寄存器,对于收发需要单独访问TDR和RDR,没有STM32F1及以上的芯片方便.
STM32的串口数据位可以有9位的,但是9位数据位的情况下就不能配置奇偶校验位,配置带奇偶效验位,这个第9位就是校验位,是不会在DR寄存器中出现的,收发时的校验位都是硬件处理的,只有校验出错时会有PE标志和中断.
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
发表于 2016-8-28 17:13:46 | 显示全部楼层
我也是新手,看原子哥的视频时,里面讲到无论是发送还是接收,用的都是DR寄存器。这个接收函数是return DR寄存器中的值来实现接收串口数据的,在使用时要定义一个变量来存储接收到的数据。
不理解的地方是DR是9位寄存器,为何接收函数被定义成16位的呢?
回复

使用道具 举报

7

主题

19

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2016-8-22
在线时间
12 小时
 楼主| 发表于 2016-8-28 17:44:04 | 显示全部楼层
学习stm32f4 发表于 2016-8-28 17:13
我也是新手,看原子哥的视频时,里面讲到无论是发送还是接收,用的都是DR寄存器。这个接收函数是return DR ...

是啊,这点我也是特别疑惑。
回复

使用道具 举报

3

主题

347

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
2078
金钱
2078
注册时间
2014-12-19
在线时间
710 小时
发表于 2016-8-28 17:59:34 | 显示全部楼层
请问有9位的数据类型吗?大于8位小于17位,用16位是最合适的。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165377
金钱
165377
注册时间
2010-12-1
在线时间
2111 小时
发表于 2016-8-28 23:45:25 | 显示全部楼层
学习stm32f4 发表于 2016-8-28 17:13
我也是新手,看原子哥的视频时,里面讲到无论是发送还是接收,用的都是DR寄存器。这个接收函数是return DR ...

你看错手册了吧?
STM32F103/F407的DR都不止9位啊!!
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

94

主题

369

帖子

0

精华

高级会员

Rank: 4

积分
865
金钱
865
注册时间
2016-8-25
在线时间
485 小时
发表于 2016-8-29 18:40:52 | 显示全部楼层
本帖最后由 学习stm32f4 于 2016-8-29 18:47 编辑
正点原子 发表于 2016-8-28 23:45
你看错手册了吧?
STM32F103/F407的DR都不止9位啊!!

您好,原子哥,我看的是F407的中文手册。对理解您的视频有误的地方,还请原谅。
如截图所示,由于DR的位31:9必须保持复位值,那么DR可以理解成只有9位能用吗?


1.jpg
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 06:52

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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