完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
stm32的代码复杂些,而且某宝卖家给的代码写得有点乱而且注释有问题啊。。
吐槽完毕,还是要脑子清醒思路清晰才能高效完成工作发现问题分析问题解决问题 总结下睡觉。 1.地址、接收通道、通信频道什么的,反正收发模式设置要相同 2.数据宽度、地址宽度 3.关键一点:数值和字符! ASCII码表在线查询(1.0 beta 1) 由于stm32上的与24l01有关的代码现在还是用的某宝卖家的,还没完全吃透。就这么说吧,其中的函数的参数是数字(不知道是不是这样表达的即表里的代码,另外c语言的变量不允许数字开头),而我发送的数据是字符串,发现问题花了一会儿,想办法解决又花了好一会儿。两边代码都不好改,参数如果是数组(指针)那真是传来传去如果要改都不知道改哪了,stm32的代码更是,想想其他的解决办法吧。 一个解决方法:step1.数值,字符嘛,查ascⅡ码表呗 step2.见下面的4,用 if ,只把数组的第一个元素拿出来,转换成数字或者把数字变回去。 4.再来一个关键一点24l01发数据的时候不知道为什么,在把数据宽度设定为8字节后,接收方还是收到32字节的数据,而且前8位后那些会混杂好多数据。当传输数据为字符串数组时,如果只有一组数据,那后面的会混杂乱码,只要传输过程不丢帧什么的,每一次的乱码都一样;如果有多组数组,则会包含这一数组和下一数组的数据,也是每一次都一样。这是用串口看到的,即收到数据后存入rx_buf[],然后通过串口在电脑上显示。显示的应该就是收到的数据。 一个解决方法是用 if 来个判断, if(!strcmp(RX_Buffer,"Forward ")) { ES = 0; for(i=0;i<8;i++) { SBUF = RX_Buffer; RX_Buffer=0; while(!TI); TI = 0; } ES = 1; } 因为前面8字节在不丢帧的情况下是正确的,那就在 if 里面用 strcmp 比较一下,如果和预期的相同再进行下一步处理。这样就能控制在串口助手上显示8字节的数据,也就可以作为舍弃多余数据的条件。 另外当把数据宽度调整到32字节时,串口助手就能一次收到252字节的数据(可能是丢包了,看着应该像256=32*8 字节)。 这个问题先撂下了,如果有朋友知道请多指教:) 就到这吧,感觉有点乱。。以后再整理吧,这里只做个备忘。 现在只是验证性的完成了,即51和stm32之间能通过24l01通信了(控制点亮led),还要做好多事情呢。只是这么简单的整理完又花了不下40分钟,表达能力捉急。。睡觉 附: 参考这里 nrf24l01发送数据的步骤: 0.CE清0,进入待机状态 1.写本机身份地址到TX_ADDR 2.写0通道接收地址到RX_ADDR_P0(与TX_ADDR一样) 3.设置自动应答允许,EN_AA 4.设置0通道允许接收,EN_RXADDR 5.配置自动重发次数SETUP_RETR 6.选择通信频道RF_CH 7.配置发射参数(如发射功率,数据传输速率)RF_SETUP 8.设置0通道有效数据宽度RX_PW_P0(就是要传送数据包的长度) 9.设置模块配置寄存器CONFIG到发送模式 10.将要传送的数据写入发送缓冲寄存器TX_FIFO 11.将CE置1,进入发送状态,CE高电平至少维持10us 设置接收数据的步骤: 0.CE=0,进入待机状态 1.写发送机身份地址到0 2.设置自动应答允许EN_AA 3.设置允许0通道接收数据EN_RXADDR 4.选择通信频道RF_CH 5.选择0通道有效数据宽度RX_PW_P0 6.配置发射参数(发射功率、传输速率等)RF_SETUP 7.设置模块的配置寄存器CONFIG在接收模式 9.CE=1,进入接收状态,高电平至少维持10us |
|
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
4130 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
3221 浏览 1 评论
2747 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
2175 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
14939 浏览 2 评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
3084浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
1892浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
2064浏览 3评论
1976浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
2165浏览 3评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 17:26 , Processed in 0.505999 second(s), Total 42, Slave 35 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1464