完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
原码是正点原子的官方例程,对于发送模块,我只是修改了主函数部分。
#include "led.h" #include "delay.h" #include "key.h" #include "sys.h" #include "lcd.h" #include "usart.h" #include "24l01.h" int main(void) { u8 key,mode,j=0; u16 t=0; u8 tmp_buf[33]; delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); uart_init(115200); LED_Init(); NRF24L01_Init(); POINT_COLOR=RED; while(NRF24L01_Check()) {} NRF24L01_TX_Mode(); mode=' '; while(1) { if(NRF24L01_TxPacket(tmp_buf)==TX_OK) { //key=mode; for(t=0;t<32;t++) { // key++; // if(key>('~'))key=' '; tmp_buf[t]=j++; } //mode++; if(mode>'~')mode=' '; tmp_buf[32]=0;//¼ÓÈë½áÊø·û } delay_ms(1500); }; } 程序下载到开发板,能检测到RF24L01模块是正常的,且有效。但是,就是无法发送数据,一直都停在那里,然后经过一步步的调试。都没有任何的改变,依旧发送不了信息。 所以就只能用原函数,未阉割版,也就是未改动的【正点原子】官方例程,在两个F1上尝试数据的发送与接收。 但是依旧是停在发送的步骤没反应,而且没办法跳出24l01.c文件,函数u8 NRF24L01_TxPacket(u8 *txbuf)里面的语句: while(NRF24L01_IRQ!=0); 但是一个偶然的尝试,用手掰一下发送板的nrf24l01模块,神奇的可以通信了。所以,可以断定代码肯定好使了。 接着尝试,发现主要影响语句【while(NRF24L01_IRQ!=0);】,而这个语句和NRF_IRQ相关,也就是和PG6管脚相关。所以,在没有成功发送的时候,利用一根跳线跳出PG6,然后在跳线的另一端,用手搓一下就能实现数据发送了,也就是说,问题就出在PG6口上了。但是只知道和脉冲信号有关系,却不知道怎么修改程序。【求大神指点】 所以我就做了一个比较狗的修改。如图: |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1758 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1613 浏览 1 评论
1053 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1670 浏览 2 评论
1931浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
721浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
563浏览 3评论
588浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
548浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-19 21:49 , Processed in 0.797281 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号