OpenEdv-开源电子网

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

新手求助,通过SPI发送一个数据,片选信号应该怎么设置?

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-11-6
在线时间
7 小时
发表于 2018-11-6 08:56:25 | 显示全部楼层 |阅读模式
1金钱
1.png 是这样先置零再置一吗,为什么CS的波形并不是在MOSI传输完数据再变为一,而是先变成零后立刻就变成一了?
应该怎么设置?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
325
金钱
325
注册时间
2016-9-25
在线时间
80 小时
发表于 2018-11-6 09:17:28 | 显示全部楼层
据我所知,库函数里面SPI发送数据只是把数据放到发送缓冲寄存器上,触发发送,然后就返回了。数据是在发送函数返回后发出的。所以这时候CS最好先不要拉高!
回复

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-11-6
在线时间
7 小时
 楼主| 发表于 2018-11-6 09:23:33 | 显示全部楼层
huangyanga 发表于 2018-11-6 09:17
据我所知,库函数里面SPI发送数据只是把数据放到发送缓冲寄存器上,触发发送,然后就返回了。数据是在发送 ...

那应该什么时候拉高?
我想在数据发送完后拉高,应该用什么来判断数据发送完成?
回复

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-11-6
在线时间
7 小时
 楼主| 发表于 2018-11-6 14:44:45 | 显示全部楼层
while((SPI2->SR&1<<1)==0)       
{
                       
                }
这个循环是什么意思?是发送缓冲为空执行括号里的内容还是发送缓冲非空执行括号里的内容?
SPI2->SR位1是TXE,0:发送缓冲为空
                                  1:发送缓冲非空
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-11-7 02:12:37 | 显示全部楼层

仿真找问题
你这个是等待发送完成。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 13:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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