OpenEdv-开源电子网

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

STM32F051的硬件SPI问题

[复制链接]

20

主题

87

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2014-8-24
在线时间
0 小时
发表于 2015-9-11 09:34:25 | 显示全部楼层 |阅读模式
5金钱
RT
本人利用STM32F051的硬件SPI驱动OLED(芯片SSD1106)时发现不行,但用软件SPI时却很正常,开始以为是SPI驱动没写好,但后来用同样的代码去读写字库芯片却能正确读出,后来忍无可忍就对比了下软件SPI与硬件SPI的区别,贴图:


这图是软件SPI,速率约730kbps,每写完8bit就空一段时间,可正常操作OLED



这图是硬件SPI,速率为750kbps,每写入16bit就空一段时间,操作不了OLED


可以确定的是:
1、跟速率无关,因为就算我的硬件SPI速率降到200kbps一样操作失败,所以别跟我说降低波特率了;
2、数据解码后都正确,所以基本确定跟硬件无关,跟上拉电阻等都无关,因为数据没错!

恳请各路大神支招,这问题困扰了一整天了,小弟初步估计是跟硬件SPI写入16bit后才空一段时间有关,因为软件SPI是写入8bit才空一段时间,谢谢!

最佳答案

查看完整内容[请看2#楼]

找到原因了,原因是我没有配置接收事件产生条件为8bit,F0默认是接收完16bit才产生一个接收事件
哥的世界,你们不懂!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

87

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2014-8-24
在线时间
0 小时
 楼主| 发表于 2015-9-11 09:34:26 | 显示全部楼层
找到原因了,原因是我没有配置接收事件产生条件为8bit,F0默认是接收完16bit才产生一个接收事件
哥的世界,你们不懂!
回复

使用道具 举报

21

主题

124

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
260
金钱
260
注册时间
2013-1-10
在线时间
10 小时
发表于 2015-9-11 12:21:37 | 显示全部楼层
楼主的用什么软件看的波形
个人博客www.xiaovdiy.cn
https://shop100764513.taobao.com/
回复

使用道具 举报

20

主题

87

帖子

0

精华

初级会员

Rank: 2

积分
189
金钱
189
注册时间
2014-8-24
在线时间
0 小时
 楼主| 发表于 2015-9-11 13:00:49 | 显示全部楼层
回复【3楼】雨山:
---------------------------------
Saleae逻辑分析仪,这么出名你居然不知道!
哥的世界,你们不懂!
回复

使用道具 举报

2

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
424
金钱
424
注册时间
2014-6-26
在线时间
74 小时
发表于 2017-12-4 09:58:42 | 显示全部楼层
按你说的,我的问题终于解决了,困扰了我好几天。
回复

使用道具 举报

2

主题

60

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
424
金钱
424
注册时间
2014-6-26
在线时间
74 小时
发表于 2017-12-4 10:08:34 | 显示全部楼层
你这个时序图是怎么弄出来的?也不想是示波器的呀。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-11 04:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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