社区
单片机/工控
帖子详情
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位,那么在数据同时进行接收和发送的时候怎么区分两个缓冲器?
...全文
5266
3
打赏
收藏
STM32的SPI_DR跟SPI的发送/接收缓冲区到底有什么关系?
由于最近开发的需要,小弟在研究STM32的SPI接口,但在SPI_DR这个地方遇到了障碍。 STM32的芯片手册上说数据寄存器对应了发送/接收缓冲区并且共用一块寄存器,如下图 同时在SPI发送和接收流程的描述中又出现了一个移位寄存器,如下图: 我的问题是: 1.这个移位寄存器是什么,是不是SPI_DR 2.如果发送/接收缓冲器都指的是SPI_DR这个寄存器的0-7位,那么在数据同时进行接收和发送的时候怎么区分两个缓冲器?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
感谢楼上两位,完美解决疑惑,我第一次发帖也不知道怎么重新编辑,不过还是非常感谢,结帖
STM32
F030
SPI
从机程序完美,
stm32
spi
从机的配置,C/C++
硬件
SPI
从机设计
STM32
F0平台
基于
STM32
的
SPI
通讯
基于
STM32
的
SPI
通信,使用 keil 编译
STM32
_
SPI
_DMA.rar
STM32
SPI
使用DMA收发数据。在使用DMA后,再使用非DMA方式不会丢失第一字节。
STM32
例程-寄存器版本,
stm32
寄存器编程,C/C++
STM32
编写历程,直接操作寄存器,包括
SPI
stm8串口
spi
通用配置
stm8串口
spi
通用配置
单片机/工控
27,516
社区成员
28,798
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章