完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用的2块相同的战舰V3开发板。已拔掉st-link运行程序。
程序也是从最新的战舰V3hal库版本中直接用的。 但接收端一直是send failed 主函数 int main(void) { u8 key,mode; u16 t=0; u8 tmp_buf[33]; HAL_Init(); //3õê¼»ˉHAL¿a STM32_Clock_Init(RCC_PLL_MUL9); //éèÖÃê±Öó,72M delay_init(72); //3õê¼»ˉÑóê±oˉêy uart_init(115200); //3õê¼»ˉ′®¿ú LED_Init(); //3õê¼»ˉLED KEY_Init(); //3õê¼»ˉ°′¼ü LCD_Init(); //3õê¼»ˉLCD FSMC½ó¿ú NRF24L01_Init(); //3õê¼»ˉNRF24L01 POINT_COLOR=RED; LCD_ShowString(30,50,200,16,16,"WarShip STM32"); LCD_ShowString(30,70,200,16,16,"NRF24L01 TEST"); LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK"); LCD_ShowString(30,110,200,16,16,"2017/6/1"); while(NRF24L01_Check()) { LCD_ShowString(30,130,200,16,16,"NRF24L01 Error"); delay_ms(200); LCD_Fill(30,130,239,130+16,WHITE); delay_ms(200); } LCD_ShowString(30,130,200,16,16,"NRF24L01 OK"); while(1) { key=KEY_Scan(0); if(key==KEY0_PRES) { mode=0; break; }else if(key==KEY1_PRES) { mode=1; break; } t++; if(t==100)LCD_ShowString(10,150,230,16,16,"KEY0:RX_Mode KEY1:TX_Mode"); //éá˸ÏÔê¾ìáê¾DÅÏ¢ if(t==200) { LCD_Fill(10,150,230,150+16,WHITE); t=0; } delay_ms(5); } LCD_Fill(10,150,240,166,WHITE);//Çå¿ÕéÏÃæμÄÏÔê¾ POINT_COLOR=BLUE;//éèÖÃ×ÖìåÎaà¶é« if(mode==0)//RXÄ£ê½ { LCD_ShowString(30,150,200,16,16,"NRF24L01 RX_Mode"); LCD_ShowString(30,170,200,16,16,"Received DATA:"); NRF24L01_RX_Mode(); while(1) { if(NRF24L01_RxPacket(tmp_buf)==0)//ò»μ©½óêÕμ½DÅÏ¢,ÔòÏÔê¾3öà′. { tmp_buf[32]=0;//¼óèë×Ö·û′®½áêø·û LCD_ShowString(0,190,lcddev.width-1,32,16,tmp_buf); }else delay_us(100); t++; if(t==10000)//′óÔ¼1sÖó¸Ä±äò»′Î×′ì¬ { t=0; LED0=!LED0; } }; }else//TXÄ£ê½ { LCD_ShowString(30,150,200,16,16,"NRF24L01 TX_Mode"); NRF24L01_TX_Mode(); mode=' ';//′ó¿Õ¸ñ¼ü¿aê¼ while(1) { if(NRF24L01_TxPacket(tmp_buf)==TX_OK) { LCD_ShowString(30,170,239,32,16,"Sended DATA:"); LCD_ShowString(0,190,lcddev.width-1,32,16,tmp_buf); key=mode; for(t=0;t<32;t++) { key++; if(key>('~'))key=' '; tmp_buf[t]=key; } mode++; if(mode>'~')mode=' '; tmp_buf[32]=0;//¼óèë½áêø·û }else { LCD_Fill(0,170,lcddev.width,170+16*3,WHITE);//Çå¿ÕÏÔê¾ LCD_ShowString(30,170,lcddev.width-1,32,16,"Send Failed "); }; LED0=!LED0; delay_ms(1500); }; } } 发送数据函数 u8 NRF24L01_TxPacket(u8 *txbuf) { u8 sta; SPI2_SetSpeed(SPI_BAUDRATEPRESCALER_8); //spiËù¶èÎa6.75Mhz£¨24L01μÄ×î′óSPIê±ÖóÎa10Mhz£© NRF24L01_CE=0; NRF24L01_Write_Buf(WR_TX_PLOAD,txbuf,TX_PLOAD_WIDTH);//D′êy¾Yμ½TX BUF 32¸ö×Ö½ú NRF24L01_CE=1; //Æô¶ˉ·¢Ëí while(NRF24L01_IRQ!=0); //μè′y·¢Ëííê3é sta=NRF24L01_Read_Reg(STATUS); //¶áè¡×′쬼Ä′æÆ÷μÄÖμ NRF24L01_Write_Reg(NRF_WRITE_REG+STATUS,sta); //Çå3yTX_DS»òMAX_RTÖD¶Ï±êÖ¾ if(sta&MAX_TX) //′ïμ½×î′óÖØ·¢′Îêy { NRF24L01_Write_Reg(FLUSH_TX,0xff); //Çå3yTX FIFO¼Ä′æÆ÷ return MAX_TX; } if(sta&TX_OK) //·¢Ëííê3é { return TX_OK; } return 0xff;//ÆäËûÔ-òò·¢Ëí꧰ü |
|
相关推荐
3个回答
|
|
求大佬帮助啊,网上好多错误原因看了,改了都没用啊
|
|
|
|
是一个发送,一个接收么? 试试寄存器版本。
|
|
|
|
按照原子哥的说明做吧,寄存器版本的代码是最好的,其他的代码有问题
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2574 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2367 浏览 5 评论
3219 浏览 3 评论
2841 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2795 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
674浏览 1评论
912浏览 0评论
1033浏览 0评论
676浏览 0评论
508浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 09:17 , Processed in 1.078312 second(s), Total 83, Slave 66 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号