你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32 串口接收中断,硬件设计不合理性建议

[复制链接]
小马哥 发布时间:2019-10-10 05:26
在串口寄存器USART_ISR 中有 1.png 。明确表示只有向USART-RDR寄存器中先写入数据,让RXNE位置1,之后顾客才能向串口发送数据。并且使能读取之后软件会自动将允许读取位又重新清零。对于使用者来说是个大麻烦事。
1 K; Z9 H* b; I5 w# a7 E7 l  记得之前用过的51单片机中会有接收使能控制位只要这个位设置为1,就可以向串口发送数据,并且串口可以正确接收该数据。  这种实际表现形式就是硬件设计不合理导致软件必须要这么操作才行,而且这种问题,STM32F1,F4,L0都存在一直没有修改,其他系列暂时没去看。建议ST修正硬件使其更符合开发者的逻辑思维,不然后期有设计更好的芯片会考虑新的芯片。/ y, m2 c: {, I3 ~9 y
收藏 评论4 发布时间:2019-10-10 05:26

举报

4个回答
mylovemcu 回答时间:2019-10-10 08:24:11
你对这一位是不是理解有误啊7 b( S' p9 U' z0 G4 A- d# V
RXNE是读取寄存器非空标志    USART-RDR向USART-DR写入数据时是接收的数据  如果设置了接收中断,就会产生一个中断去处理1 l8 F0 h# H0 n/ g* e% {) r8 j
并且还有一个发送中断使能   发送完成也可以产生中断
小马哥 回答时间:2019-10-10 12:29:52
mylovemcu 发表于 2019-10-10 08:24
  W2 b0 g7 o+ h6 ^+ r你对这一位是不是理解有误啊
, U5 U* |! N. ^% R, JRXNE是读取寄存器非空标志    USART-RDR向USART-DR写入数据时是接收的数据  如 ...

' P# f. D. z) D  [; V QQ截图20191010122922.png @楼上,TDR与RDR是两个独立的寄存器,你说RDR向TDR写数据是发送数据,首先你先去看看芯片的datasheet
mylovemcu 回答时间:2019-10-10 13:18:20
唯舞独尊 发表于 2019-10-10 12:29/ @0 [0 o# p; m# k4 ?; R& _
@楼上,TDR与RDR是两个独立的寄存器,你说RDR向TDR写数据是发送数据,首先你先去看看芯片的datasheet ...
1 C' E6 q' |- [: e
愁死我了  我说是向DR写数据(应该是读数据  之前写错了)不是TDR+ g% r! d# }# ]& I3 Y/ x- ]

8 D: |4 O: n6 `2 G4 R7 ~0 ORDR是接收数据的  TDR是发送数据的  DR是存储收发数据的1 g/ n4 {  l2 r/ B- b8 ?  U/ H* L. j
七哥 回答时间:2019-10-10 16:37:08
这位这样设置没毛病,3 M/ C. I$ E9 \) N$ ?
还是好好体会怎么使用吧

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版