STM32的SPI_DR跟SPI的发送/接收缓冲区到底有什么关系?

qq_16738141 2017-07-20 10:50:31
由于最近开发的需要,小弟在研究STM32的SPI接口,但在SPI_DR这个地方遇到了障碍。
STM32的芯片手册上说数据寄存器对应了发送/接收缓冲区并且共用一块寄存器,如下图

同时在SPI发送和接收流程的描述中又出现了一个移位寄存器,如下图:

我的问题是:
1.这个移位寄存器是什么,是不是SPI_DR
2.如果发送/接收缓冲器都指的是SPI_DR这个寄存器的0-7位,那么在数据同时进行接收和发送的时候怎么区分两个缓冲器?
...全文
5888 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2017-07-20
  • 打赏
  • 举报
回复 5
一般这种寄存器使用相同的地址,但是在硬件上是两个寄存器,在读和写时 硬件上会做区分, 一般芯片资料的硬件描述中会有说明
ObrienHuang 2017-07-20
  • 打赏
  • 举报
回复 10
1、移位寄存器是单片机内部的,你可以不用管它,并不是SPI->DR寄存器,它是由SPI->DR寄存器自动发送出去给移位寄存器的; 2、接受的时候,比如uint8_t rec_buf = SPI->DR,就能接收了,发送的时候,uint8_t dat = 'a'; SPI->DR = dat,就行了,读取的时候,就是接收,赋值的时候就是发送。
qq_16738141 2017-07-20
  • 打赏
  • 举报
回复 1
感谢楼上两位,完美解决疑惑,我第一次发帖也不知道怎么重新编辑,不过还是非常感谢,结帖
内容概要:本文详细介绍了利用Simulink进行变压器开路试验的电路连接配置与仿真实现方法,重点在于通过仿真手段还原实际电力系统中变压器在空载条件下的电气特性,从而深入理解其工作原理与性能表现。文章作为电力系统仿真系列研究的一部分,系统阐述了从电路模型搭建、参数设定、仿真运行到结果分析的完整流程,突出展示了MATLAB/Simulink在电力设备建模与教学科研中的强大功能与应用价值。; 适合人群:具备电力系统基础知识,熟悉MATLAB/Simulink仿真环境,从事电气工程、自动化及相关领域的研发人员,以及高年级本科生和研究生。; 使用场景及目标:①掌握变压器开路试验的基本原理与Simulink仿真建模的具体步骤;②通过仿真实验深入理解空载电流、铁芯损耗及励磁特性等关键参数的物理意义;③为后续开展变压器短路试验、暂态过程分析以及其他电力设备的仿真研究奠定理论与实践基础。; 阅读建议:建议结合Simulink软件动手实践,逐步构建并调试电路模型,重点关注各元件参数的设置方法与测量模块的应用技巧,同时推荐参考文中提及的其他相关仿真案例进行拓展学习,以全面提升对电力系统仿真实践的整体认知与操作能力。

27,521

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧