完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
浮点数我用一个函数转化为无符号字符串类型了,代码如下******************************************************
void sprint(float n,U8 *reChar,int zsize,int xsize,int flag) { int z,p,i=0,j=0; char a[11]; //n=n+0.001;//+0.00001避免浮点数精度丢失,可根据你传感器输出实际数字位数修改,不要超出类型范围 z=(int)n; p=(int)((n-z)*100);//取小数数字,最大1位小数 *10 2位*100 3位*1000 需要自行修改 你也可以自己写10次方函数利用xsize运算 while(p/10!=0) { a[i++]=p%10+'0'; p=p/10;} a[i++]=p+'0'; a[i++]='.'; while(z/10!=0) { a[i++]=z%10+'0'; z=z/10; } a[i++]=z+'0'; // a=0; for(i=zsize+xsize-1;i>=0;i--) reChar[j++]=a; if(flag==1) reChar[j]=','; } ********************************** 发送设置如下 /****************************************************************************************************/ //函数:void SetTX_Mode(void) //功能:数据发送配置 //****************************************************************************************************/ void SetTX_Mode(void) { RF24L01_CE_0 ; SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, RX_ADR_WIDTH); SPI_RW_Reg(WRITE_REG + EN_AA, 0x01); SPI_RW_Reg(WRITE_REG + SETUP_RETR,0x1a); SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); SPI_RW_Reg(WRITE_REG + RF_CH, 0); SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); // SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x0F); //设置TX发射参数,0db增益,2Mbps,低噪声增益开启 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); //设置发射速率为1MHZ,发射功率为最大值0dB SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); ms_delay(1); RF24L01_CE_1; } **************************************** 电脑端用了一个转u***串口插在电脑上用串口调试助手读数据,调的时候如果发送源代码{0x0c,0xc9,0xcf,0xba,0xa3,0xb1,0xa6,0xc7,0xb6,0xb5,0xe7,0xd7,0xd3}电脑端就能接收,如果是我自己设置的常数浮点数转化之后的字符串就不能发送,真心不知道为什么。 *************************************************** void nRF24L01_TxPacket(unsigned char *tx_buf)// { RF24L01_CE_0 ; // StandBy I模式 //SPI_RW_Reg(WRITE_REG + CONFIG, 0x7e); // IRQ不显示,16位CRC,主发送 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // 装载接收端地址 SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); // 装载数据 SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); // IRQ收发完成中断响应,16位CRC,主发送 //SPI_RW_Reg(FLUSH_TX, 0XFF); //SPI_RW_Reg(WRITE_REG+STATUS,0XFF); // 清状态寄存器 RF24L01_CE_1; //置高CE,激发数据发送 ms_delay(1); } ***************************** |
|
相关推荐
4个回答
|
|
这个芯片少人用,你自己研究吧
|
|
|
|
没人帮我看看么
|
|
|
|
你要模块?还是芯片?
|
|
|
|
已经自行解决了,谢谢原子哥
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2573 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2367 浏览 5 评论
3216 浏览 3 评论
2841 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2795 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
673浏览 1评论
911浏览 0评论
1032浏览 0评论
675浏览 0评论
507浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 10:36 , Processed in 1.334701 second(s), Total 83, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号