完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
皆様、こんにちは:
时隔好久好久,我又回来啦;说到底,我还是不舍得放下电子,因为这个专业实在是太好玩啦,每次按自己的想法把自定义的玩意整出来,那感觉超级自豪,自我满足感优越感极度强;这一次的话发表无线模块24l01,至于为什么玩这个呢,因为手头上刚好有,因为是玩,公司的话也没有用到此方面的知识,所以的话目前浅尝辄止,入一下门,万一以后真的用上,肯定会事半功倍;那么接下来开始介绍我这次试验的内容吧。 本次的课题命名为:无线模块24l01试验,使用一块STM32驱动两个无线模块,一个作为发送端,一个作为接收端,发送端的SPI协议使用STM32自带的库函数进行编写;接收端的SPI使用IO口进行模拟;效果很简单:接收方接收完数据后使用串口能够正常显示出来,说明试验成功; 讲一下我这次学习的一个经验吧,其实在去年就已经研究了一个星期,但是那个时候比较没经验吧,没有一个整体的开发思路,那个时候不知道调通SPI协议的重要性,就在那瞎搞;也不知道分析状态寄存器这个宝贝地址;接着就被公司派遣到索尼做支援了,回来之后,因为没有具体项目,所以就又想起这个课题,于是就继续搞啦,这一次的话因为之前在索尼的时候有跟SPI打过交道,很严肃的明白了调通他的重要性,于是这一次搞得话,自己首先会去确定到底通信是否正常,在调通了之后,这个模块就变得超级简单啦,毕竟也没什么难的,那么在SPI调试过程中我发现了什么问题呢,原来查看数据手册真的很重要,在做时序逻辑时,一开始我是先打开时钟,再给MOSI传值的,但是当我看到对于时序解释表里有一个SCK to Data Vaild,我就知道自己错了,因为按照使用介绍,正确的使用是先安装数值,然后打开时钟,这个时候数值才能正确的装进去;更改了之后SPI通信就正常啦;至于怎么判断SPI有没有调通呢,只要你去读寄存器,看读回来的数值跟默认的能不能对的上不就可以了吗~~接着通信环节的调试,一开始我犯了个小错误,就是打开传输模式,发送数据;然后再打开接收模式,再接收数据,这个逻辑也是错误的,正确的做法是收发模式同时打开,然后数据发送后,用同样的地址去接收,此时应答信号会自动产生,如果操作失败的话,状态寄存器是会返回0x1e的,因为重发次数达到最大值;好啦,这几个点是我这次课题试验花时间较长的问题点。话说重出江湖的我弄了一天就完成试验啦,真搞不懂去年的自己为什么那么傻; 我已经将我的学习资料,源码,还有调试记录添加到附件中拉,有需要的小伙伴请自行下载,因为懒的原因,自己就写了个库函数,其他的都是大学老师梁老师写的;感慨我梁老师真的是超级厉害的,一个物理学专业毕业的,竟然可以将电子和编程玩到那么溜,真心佩服啊;向梁老师看齐~~~好啦,希望这个帖子能够帮助到也在学习这个模块的你,因为手头上还有一块陀螺仪,所以下次会玩这个~~頑張れ じゃあっれ
|
|
相关推荐
|
|
2234 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2053 浏览 3 评论
4664 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2197 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2734 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 21:50 , Processed in 0.538850 second(s), Total 72, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号