你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32_SPI主从通信

[复制链接]
ybhuangfugui 提问时间:2016-5-9 21:58 /
今天讲解“STM32F103 SPI主从通信”,原本计划将这部分内容定在后面(第二阶段)来讲解,满足一位网友的问题“关于两块MCU的SPI通讯”,所以今天特地提前讲解了。
由于昨天讲解的是“SPI读写Flash”,MCU是作为SPI通信中的主机,今天主要讲解SPI通信的从机,我将我测试的主机从机的代码分别打包供大家下载测试。
今天提供并讲解的软件工程,基于昨天的软件工程“SPI读写Flash”修改而来。若有疑问,请关注微信公众号“EmbeddDeveloper”获取更多信息。
本着免费分享的原则,将讲解的工程源代码分享给大家,还望看到的朋友关注和推广一下微信公众号,增加一下人气。
每天提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。
今天的软件工程下载地址(360云盘):
主机:http://yunpan.cn/cPIJguDkjntYI  访问密码 7bb6
从机:http://yunpan.cn/cPIJfZxr7D5Sk  访问密码 fd5a
STM32F10x的资料可以在我360云盘下载:
http://yunpan.cn/crBUdUGdYKam2   访问密码 ca90
测试原理及现象:主机间隔500ms发送10个字符(0-9),从机开启SPI中断接收数据,接收满10字节数据,置标志位gSPI_FlagOver有效,并变化LED,通过串口打印接收到的数据。
关于“STM32F103 SPI通信从机部分” 我把重要的几点在下面分别讲述,若不明白,请关注微信公众号“EmbeddDeveloper”查阅或留言。
一、RCC时钟配置
SPI主从通信 - 图片1.png
该函数位于在bsp.c文件下面;
使能RCC时钟:RCC_APB2Periph_SPI1
二、引脚配置
SPI主从通信 - 图片2.png
该函数位于在spi.c文件下面;
这里是对SPI所使用引脚进行配置。
注意
SPI作为从机,MOSI作为从机接收而不是MISO,“今天的重点”我还会强调这点。
三、SPI配置
SPI主从通信 - 图片3.png
该函数位于在spi.c文件下面;
对SPI进行配置。
配置的每一条语句都有注释,请看源代码.
强调一点:SPI_CPOL_Low时钟空闲为低,这个引脚容易受干扰导致通信故障。
四、SPI中断控制器配置
SPI主从通信 - 图片4.png
该函数位于在bsp.c文件下面;
因为开启了中断接收数据,这里必须配置中断控制器。
五、SPI中断处理
SPI主从通信 - 图片5.png
该函数位于在stm32f10x_it.c文件下面;
文章开始就说明了:接收满10字节数据,置标志位gSPI_FlagOver有效。该函数就是这个意思。
、主函数应用
SPI主从通信 - 图片6.png
该函数位于在main.c文件下面;
这就是文章开头“测试原理及现象”的描述,就不多说了。
六、今天的重点提示
A.主从连接方式:
这里对于开始学习的朋友来说,有点不理解(因为基本上都知道串口的通信,主机Tx对应从机Rx),还以为“主机的MOSI”连接的是“从机的MISO”,其实这里是和串口的区别之一(当然还有其他,这里不讲解)。具体请看参考手册。
SPI主从通信 - 图片7.png
B.常见问题
之前有写过关于SPI主从通信的实例。但是,我今天专门找了两套板子来测试,刚开始,通信时钟有问题(从机不停地在接收0x00数据),结果发现两板子之间没有共地,找了根线接上,数据没有不停地接收了。
但新的问题又来了,开始接收的数据正确,一旦出错了一位,后面接收到的数据都不对了。我是不停的查看代码,开始始终怀疑代码有问题,但把代码该了无数次(不知道好多次)之后,手册看了几遍,上网也查了很久,还是一样的现象,结果,我用示波器测试了一下通信的时钟(SCK),频率有几M, 波形间隔大概只有100ns,我就怀疑问题出在通信的线上,线太长了(估计有四五十厘米),果不然,使用短点的通信线,问题就好了。
说实话,一个不起眼的问题,可能会耗掉你无数的时间,这里我将我走过的弯路告诉大家,希望不要走这条弯路,今后的分享中我也会将一些容易出错的地方拿到这里讲解。
下载方式:长按网站 ->选择复制 ->打开
或者复制网站在电脑上下载也可。
想掌握更多精彩内容,请关注我的微信公众号。
微信搜索“EmbeddDeveloper”, 或扫描下面二维码关注
公众号.jpg

收藏 3 评论3 发布时间:2016-5-9 21:58

举报

3个回答
sunhuanhappy 回答时间:2016-11-24 10:13:11
文中的360云盘失效 stm32 spi主从通信工程代码有新的地址下载不 方便发我邮箱不 474547926@qq.com
tobyshi 回答时间:2017-7-29 09:00:43
楼主您好!最近在调试主从收发的例程,遇到了只能成功发送,不能接收的问题,想起了您微信公众号里面的这篇文章,只是360云盘里的相关例程失效了,再次想问一下楼主有没有新的下载链接,或者方不方便给我发一下,邮箱:909933850@qq.com,谢谢!!
springyyy 回答时间:2018-2-27 14:20:43
tobyshi 发表于 2017-7-29 09:00
楼主您好!最近在调试主从收发的例程,遇到了只能成功发送,不能接收的问题,想起了您微信公众号里面的这篇 ...

关注他微信号,他微信号上都传到百度云了

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版