OpenEdv-开源电子网

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

网上找到一个关于SPI调试的好贴,记录一下,与大家分享

[复制链接]

20

主题

143

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2015-8-28
在线时间
108 小时
发表于 2016-12-13 16:35:06 | 显示全部楼层 |阅读模式
                原文出处及连接如下,如有疑问请与原作者联系,与本人无关。谢谢!


STM32F030与STM32F411的SPI调试经验–兼RXNE不能置位的原因               
                          本文作者:Aleyn.wu                           本文出处:莴牛实验室[http://www.wisearm.com]               
         
                              一、这两天在调试STM32F030的SPI,主机模式。在调试的时候,发现SPI寄存器的RXNE总是置位,后来查手册,才知道是数据位数和应答的关系。
1。源程序上需要修改。
SPI_RxFIFOThresholdConfig(SPI1, SPI_RxFIFOThreshold_QF);  //要加入这一句,把应答的数据位数设置为8位
SPI_Cmd(SPI1, ENABLE); //上面的语句要在SPI使能之前。
2。IAR环境。
如果你使用IAR在调试,那么需要关闭SPI寄存器的监控窗口,否则RXNE也不能置位。这个应该是IAR先读取了SPI状态寄存器而导致RXNE清零的原因。
3。硬件上的修正
SPI的MOSI,MISO,SCK,CSN,这四个IO,内部上拉电阻好像不起作用,所以需要外部加上10K的上位电阻
4。与Flash连接时
SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
5。与nRF24L01连接时
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge;
二、STM32F411的SPI,与nRF24L01连接的时候,总是出现移位接收错误,就算是把SCK时钟调到很低,也不行。
后来,本着试一下,把GPIO_OType,从GPIO_OType_OD改为GPIO_OType_PP,故障清除。
在STM32F030下,可以使用GPIO_OType_OD,但在STM32F411下,只能使用GPIO_OType_PP才能正常收发。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

346

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3657
金钱
3657
注册时间
2016-2-21
在线时间
542 小时
发表于 2016-12-13 16:42:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2016-12-13 21:12:00 | 显示全部楼层
恩,好东西,谢谢。
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复 支持 反对

使用道具 举报

109

主题

1606

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2222
金钱
2222
注册时间
2011-12-15
在线时间
37 小时
发表于 2016-12-13 21:12:22 | 显示全部楼层
恩,好东西,谢谢分享。
专业制作STM32 物联网通信模块板,模块交流群:369840039。
回复 支持 反对

使用道具 举报

20

主题

143

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2015-8-28
在线时间
108 小时
 楼主| 发表于 2016-12-14 10:51:03 | 显示全部楼层
自己调试中使用keil,发现第二条很对症,当仿真观察SPI寄存器时,会出现死在while等待RXEN处,关掉SPI寄存器窗口,一直运行了一下午也没出现。
回复 支持 反对

使用道具 举报

3

主题

347

帖子

3

精华

金牌会员

Rank: 6Rank: 6

积分
2082
金钱
2082
注册时间
2014-12-19
在线时间
711 小时
发表于 2016-12-14 12:06:18 来自手机 | 显示全部楼层
本帖最后由 lvehe 于 2016-12-14 12:18 编辑

难道这些不是很正常的设置吗?按官方标准库例程或原子的例程来也不至于出这么多问题。
回复 支持 反对

使用道具 举报

13

主题

96

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3227
金钱
3227
注册时间
2016-5-7
在线时间
531 小时
发表于 2019-9-27 15:52:59 | 显示全部楼层
感谢,怪不得我调试F030使用NRF24L01一直初始化失败
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 17:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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