完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
51和51是可以用NRF2401模块通信的,但是51发送给STM32却不可以,两边的基本设置都已经一样了,还是不行,是什么问题,是和数据传输率有关吗?还是?求大神帮忙啦!32是用原子哥的nrf2401的历程
51的代码如下: #include #include #include /***************************************************/ #define uchar unsigned char #define TX_ADR_WIDTH 5 // #define TX_PLOAD_WIDTH 4 // uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01}; // //uchar code RX_ADDRESS[TX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x02}; uchar RX_BUF[TX_PLOAD_WIDTH]; uchar TX_BUF[TX_PLOAD_WIDTH] = {0x22,0x34,0x56,0x78}; uchar flag; uchar DATA = 0x01; uchar bdata sta; ***it RX_DR = sta^6; ***it TX_DS = sta^5; ***it MAX_RT = sta^4; /**************************************************/ /************************************************** /**************************************************/ void init_io(void) { CE = 0; // ′y»ú CSN = 1; // SPI½ûÖ1 SCK = 0; // SPIê±ÖóÖÃμí IRQ = 1; // ÖD¶Ï¸′λ } /**************************************************/ /************************************************** /**************************************************/ void delay_ms(uchar x) { uchar i, j; i = 0; for(i=0; i j = 250; while(--j); j = 250; while(--j); } } /**************************************************/ /************************************************** /**************************************************/ uchar SPI_RW(uchar byte) { uchar i; for(i=0; i<8; i++) // Ñ-»·8′Î { MOSI = (byte & 0x80); // byte <<= 1; // SCK = 1; // byte |= MISO; // SCK = 0; // } return(byte); // } /**************************************************/ /************************************************** /**************************************************/ uchar SPI_RW_Reg(uchar reg, uchar value) { uchar status; CSN = 0; // status = SPI_RW(reg); // SPI_RW(value); // CSN = 1; // return(status); // } /**************************************************/ /************************************************** /**************************************************/ uchar SPI_Write_Buf(uchar reg, uchar * pBuf, uchar bytes) { uchar status, i; CSN = 0; // status = SPI_RW(reg); // for(i=0; i CSN = 1; // return(status); // } /**************************************************/ /************************************************** /**************************************************/ void TX_Mode(uchar * BUF) { CE = 0; SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // SPI_Write_Buf(WR_TX_PLOAD, BUF, TX_PLOAD_WIDTH); // SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); // SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); // SPI_RW_Reg(WRITE_REG + SETUP_RETR, 0x0a); // SPI_RW_Reg(WRITE_REG + RF_CH, 40); // SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x01); // SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // CE = 1; } /**************************************************/ /************************************************** /**************************************************/ uchar Check_ACK(bit clear) { while(IRQ); sta = SPI_RW(NOP); // if(MAX_RT) if(clear) // SPI_RW(FLUSH_TX); SPI_RW_Reg(WRITE_REG + STATUS, sta); // IRQ = 1; if(TX_DS) return(0x00); else return(0xff); } /**************************************************/ /************************************************** /**************************************************/ void main(void) { init_io(); while(1) { TX_Mode(TX_BUF); Check_ACK(1); delay_ms(1000); } } /**************************************************/ |
|
相关推荐
3个回答
|
|
现在弄出来了吗?我也遇到同样的问题了
|
|
|
|
uchar SPI_RW(uchar byte) { uchar i; for(i=0; i<8; i++) // Ñ-»·8′Î { MOSI = (byte & 0x80); // byte <<= 1; // SCK = 1; // byte |= MISO; // SCK = 0; // } return(byte); // }
|
|
|
|
感觉 你这个函数里面的byte又是要写的数据 又是读回来的数据 造成了混乱
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2568 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2363 浏览 5 评论
3209 浏览 3 评论
2836 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2787 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
665浏览 1评论
904浏览 0评论
1025浏览 0评论
668浏览 0评论
498浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 19:29 , Processed in 1.141205 second(s), Total 81, Slave 64 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号