OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3826|回复: 5

用的149单片机向电脑发送浮点数,使用的无线模块是nrf24l01,但是电脑这端一直接收不到。。

[复制链接]

1

主题

4

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-5-2
在线时间
3 小时
发表于 2018-5-2 16:25:39 | 显示全部楼层 |阅读模式
3金钱
浮点数我用一个函数转化为无符号字符串类型了,代码如下******************************************************

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[i]=0;   
    for(i=zsize+xsize-1;i>=0;i--)
        reChar[j++]=a[i];
    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;

}

****************************************
电脑端用了一个转usb串口插在电脑上用串口调试助手读数据,调的时候如果发送源代码{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);
}

*****************************

最佳答案

查看完整内容[请看2#楼]

这个芯片少人用,你自己研究吧
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-5-2 16:25:40 | 显示全部楼层
这个芯片少人用,你自己研究吧
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-5-2
在线时间
3 小时
 楼主| 发表于 2018-5-2 19:16:12 | 显示全部楼层
没人帮我看看么
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-5-2
在线时间
3 小时
 楼主| 发表于 2018-5-3 09:38:47 | 显示全部楼层
正点原子 发表于 2018-5-3 01:27
这个芯片少人用,你自己研究吧

nrf24l01么?工作室里用的就是这个,,,有其他常用且可替代的么?
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-5-4 01:47:34 | 显示全部楼层
笨狗汪汪 发表于 2018-5-3 09:38
nrf24l01么?工作室里用的就是这个,,,有其他常用且可替代的么?

你要模块?还是芯片?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手上路

积分
20
金钱
20
注册时间
2018-5-2
在线时间
3 小时
 楼主| 发表于 2018-5-4 20:18:01 | 显示全部楼层
正点原子 发表于 2018-5-4 01:47
你要模块?还是芯片?

已经自行解决了,谢谢原子哥
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 03:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表