基于江科大STM32利用NRF24L01向电脑发送 汉字、字符、数字、浮点数。

这篇具有很好参考价值的文章主要介绍了基于江科大STM32利用NRF24L01向电脑发送 汉字、字符、数字、浮点数。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近在使用stm32单片机时,有一个需求,就是通过NRF24L01向电脑发送数据,学习了部分教程后,发现目前分享的程序里基本只能发送简单的16进制数,并不能发送汉字、字符、数字、浮点数等,于是在其基础上进行改进,目前可以实现发送汉字、字符、数字、浮点数,需要源码可无偿分享,联系1090632294@qq.com。

//发送数据字节函数

void NRF24L01_SendBuf(uint8_t *Buf)
{
    W_CE(0);                                    
    NRF24L01_Write_Reg(nRF_WRITE_REG + CONFIG, 0x0E);   
    W_CE(1);
    Delay_us(15);
    NRF24L01_SendTxBuf(Buf);                        
    W_CE(0);
    NRF24L01_Write_Reg(nRF_WRITE_REG + CONFIG, 0x0F);
    W_CE(1);    
}

//发送字符函数

void NRF24L01_SendString(char *String)
{
    uint8_t Psign[32] = {0};
    uint8_t SendBuf[33] = {0};
    uint8_t TSign = 0;
    for (uint8_t i = 0; i < 32; i ++)
    {
        if (String[i] != 0)
        {
            Psign[TSign] = i;
            TSign ++;
        }
    }
    if (TSign > 0)
    {
        TSign --;
    }
    SendBuf[0] = Psign[TSign] + 1;
    for (uint8_t i = 0; i < SendBuf[0]; i ++)
    {
        SendBuf[i + 1] = String[i];
    }
    NRF24L01_SendBuf(SendBuf);
    
}

//发送数字函数

void NRF24L01_SendNum(uint32_t Num)
{
    uint8_t SendBuf[2] = {0};
    SendBuf[0] = 1;
    for (uint8_t i = 0; i < 1; i ++)                            
    {
        SendBuf[i + 1] = (Num / (uint32_t)pow(10, 0 - i) % 10+'0');
    }
    
    NRF24L01_SendBuf(SendBuf);
    
}

//发送浮点数函数
void NRF24L01_SendFloatNum(double Number,int FraLength)
{
    uint32_t PowNum, IntNum, FraNum,a;
    
    /*提取整数部分和小数部分*/
    IntNum = Number;                        //直接赋值给整型变量,提取整数
    a=IntNum;
    
    Number -= IntNum;                        //将Number的整数减掉,防止之后将小数乘到整数时因数过大造成错误
    PowNum = pow(10, FraLength);        //根据指定小数的位数,确定乘数
    FraNum = round(Number * PowNum);        //将小数乘到整数,同时四舍五入,避免显示误差
    IntNum += FraNum / PowNum;                //若四舍五入造成了进位,则需要再加给整数
    int datalength=0;
    
    while(IntNum!=0)   
    {
        datalength++;
        IntNum=IntNum/10;//一共有几位整数 
    } //此时IntNum为0 需要重新给IntNum赋值
    
    IntNum=a;    
    
    NRF24L01_SendNum(IntNum);//发送整数部分
    Delay_ms(200);
    NRF24L01_SendString(".");
    Delay_ms(200);
    NRF24L01_SendNum(FraNum);//发送小数部分
    Delay_ms(200);
    
    
}

//发送中文函数

void NRF24L01_Printf(char *format, ...)
{
    char String[100];                //定义字符数组
    va_list arg;                    //定义可变参数列表数据类型的变量arg
    va_start(arg, format);            //从format开始,接收参数列表到arg变量
    vsprintf(String, format, arg);    //使用vsprintf打印格式化字符串和参数列表到字符数组中
    va_end(arg);                    //结束变量arg
    NRF24L01_SendString(String);        //串口发送字符数组(字符串)
}

主程序

nrf24l01传输汉字,stm32,单片机,嵌入式硬件

程序现象

nrf24l01传输汉字,stm32,单片机,嵌入式硬件文章来源地址https://www.toymoban.com/news/detail-846357.html

到了这里,关于基于江科大STM32利用NRF24L01向电脑发送 汉字、字符、数字、浮点数。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32F103C8T6实验代码之NRF24L01P 多发一收

    NRF24L01P射频芯片,比NRF24L01具有更高的可靠性,更多的功 率等级,以及更远的传输距离和更低的功率。此外还内置RFX2401功放芯片, 内建LNA,接收灵敏度 提高10dBm,工作在2.4GHz~2.5GHz的ISM频段。 电压:最小值=1.9V;典型值=3.0V;最大值=3.6V; 如果要接入5V,需要使用电阻进行分压

    2024年02月06日
    浏览(51)
  • STM32F103C8T6与2.4G无线模块NRF24L01连接

    最近使用到了这个2.4G无线模块NRF24L01,比蓝牙好用,需要同时使用两个来用,它长这样: 使用它需要代码支持,因此我在耗费了一些精力后,从网上东拼西凑了一些代码,修修补补后使它能够正常运行, 注意:我只测试了两个2.4G无线模块NRF24L01的连接。 下图是2.4G无线模块

    2024年02月12日
    浏览(46)
  • 51驱动NRF24L01通信,NRF24L01与TTL转NRF24L01模块通信

    NRF24L01 是 NORDIC 公司最近生产的一款无线通信通信芯片,采用 FSK 调制,内部 集成 NORDIC 自己的 Enhanced Short Burst 协议。可以实现点对点或是 1 对 6 的无线通信。无线通信速度可以达到 2M(bps)。NORDIC 公司提供通信模块的 GERBER 文件,可以直接加工生产。嵌入式工程师或是单片

    2024年02月03日
    浏览(88)
  • 无线收发模块——NRF24L01

    nRF24L01 是由NORDIC生产的工作 在2.4GHz~2.5GHz 的ISM 频段的 单片无线收发器芯片 。有着极低的电流消耗。 nRF24L01与5V单片机的连接通过 SPI 接口进行通讯,输出功率频道选择和协议的设置可以通过SPI 接口进行设置,几乎可以连接到各种单片机芯片,并完成无线数据传送工作。 引脚

    2024年02月01日
    浏览(42)
  • NRF24L01学习操作教程(二)——NRF实现一对一,一对多通讯

    上篇博客链接:https://blog.csdn.net/DIVIDADA/article/details/130599974?spm=1001.2014.3001.5501 以下单片机例程都是基于STM32 HAL库,在文档末尾,我会提供参考博客和源码程序的链接。 在CubeMx中配置单片机时钟、SPI通讯接口、NRF24L01接口等,并生成Keil工程 将NRF24L01的驱动程序的.c文件和.h文件

    2024年01月15日
    浏览(46)
  • NRF24L01 2.4G无线模块浅析(学习笔记)

    仅作为个人学习笔记 nRF24L01是由NORDIC生产的工作在2.4GHz~2.5GHz的ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型“SchockBurst”模式控制器、功率放大器、晶体振荡器、调制器和解调器。 应用领域 ● 无线鼠标 键盘 游戏机操纵杆 ● 无线门禁 ● 无线数据通

    2024年01月16日
    浏览(47)
  • stm32驱动NRF24L01_原理+代码解析

    目录 概念 废话篇(24L01简介) 引脚分配 工作模式 通信地址理解(个人疑难点) 原理分析 寄存器赏析 寄存器操作指令  配置寄存器(CONFIG,位置:0X00)  自动应答使能寄存器(EN_AA,0X01) RX地址使能寄存器(EN_RXADDR,0X02)  自动重发设置寄存器(SETUP_RETR,0X04)  射频频

    2024年01月18日
    浏览(45)
  • 嵌入式-Stm32-江科大基于标准库的GPIO通用输入输出口

    (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》) 下文图都是从参考手册借阅:STM32F10xxx(中文),大概页数是110/775左右 GPIO (General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V(有FT标识) 输出模式 下可控

    2024年01月17日
    浏览(63)
  • 嵌入式-Stm32-江科大基于标准库的GPIO的八种模式

    (推荐先看文章:《 嵌入式-32单片机-GPIO推挽输出和开漏输出》) 下文图都是从参考手册借阅:STM32F10xxx(中文),大概页数是110/775左右 GPIO (General Purpose Input Output)通用输入输出口 可配置为8种输入输出模式 引脚电平:0V~3.3V,部分引脚可容忍5V(有FT标识) 输出模式 下可控

    2024年01月20日
    浏览(52)
  • 嵌入式-Stm32-江科大基于标准库的GPIO4个小实验

    核心:本文共4个小实验: 第一个:LED灯闪烁 第二个:LED流水灯 第三个:按键控制LED 第四个:光敏传感器控制蜂鸣器 1.1 LED、蜂鸣器、面包板 LED:发光二极管,正向通电点亮,反向通电不亮。 有源蜂鸣器(本实验):内部自带振荡源,将正负极接上直流电压即可持续发声,频

    2024年01月21日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包