stm32f103+CC2500PATR2.4SK

news2024/11/15 13:41:09

前言

记录一下自己最近在项目中用到并使用这个模块的使用过程。
在这里插入图片描述

模块介绍

模块特点

CC2500PATR2.4SK是集FSK/ASK/OOK/MSK.调制方式于一体的收发模块。它提供扩展硬件支持实现信息包处理、数据缓冲、群发射、空闲信道评估、链接 质量指示和无线电波唤醒,可以采用曼彻斯特编码进行调制解调它的数据流。 性能优越并且易于应用到你的产品设计中,它可以应用于2400-2483.5MHz ISM/SRD频段的系统,消费类电子产品、无线游戏控制器、无线音频传输和 其他的无线系统中。
在这里插入图片描述

模块使用

在这里插入图片描述
CSD, CPS 以及CTX用来选择PA或LAN通道,SEL用来选择天线口,致高为左,拉低为右边天线端口。

使用说明

IOCFGx 寄存器配置:
IOCFG2、IOCFG1 和 IOCFG0 是 CC2500 中用来配置测试输出控制引脚(GDO0、GDO1、GDO2)的寄存器。
这些引脚在不同工作模式下具有不同的功能,可以根据需求配置它们的行为。
配置的参数范围是 0 到 0x3F,不同参数对应于不同的引脚功能。具体的配置参数含义如下:
寄存器地址定义:
IOCFG2 (0x00): GDO2 输出引脚配置。
IOCFG1 (0x01): GDO1 输出引脚配置。
IOCFG0 (0x02): GDO0 输出引脚配置。
FIFOTHR (0x03): RX FIFO 和 TX FIFO 阈值设置。
SYNC1 (0x04): 同步字高字节设置。
SYNC0 (0x05): 同步字低字节设置。
PKTLEN (0x06): 数据包长度设置。
PKTCTRL1 (0x07): 数据包自动化控制。
PKTCTRL0 (0x08): 数据包自动化控制。
ADDR (0x09): 设备地址设置。
CHANNR (0x0A): 信道号设置。
FSCTRL1 (0x0B): 频率合成器控制。
FSCTRL0 (0x0C): 频率合成器控制。
FREQ2 (0x0D): 频率控制字高字节。
FREQ1 (0x0E): 频率控制字中字节。
FREQ0 (0x0F): 频率控制字低字节。
MDMCFG4 (0x10): 调制配置。
MDMCFG3 (0x11): 调制配置。
其余自行查看
命令定义
SRES (0x30): 复位芯片。
SFSTXON (0x31): 启用和校准频率合成器。
SXOFF (0x32): 关闭晶体振荡器。
常量和宏
CRC_OK (0x80): CRC 校验通过标志。

GDO0 - 发射模式:
GDO0 在上电后初始化前会以 135 kHz 的频率输出方波。
初始化完成后,将 GDO0 保持为低电平。
在发射模式下,GDO0 通常为低电平。
当 MCU 下达 STX(发射)命令后,GDO0 会从低电平变为高电平,表示 CC2500 正在发射数据。
GDO0 在发射完成时由高电平变为低电平,表示发射过程结束。

GDO0 - 接收模式:
在接收模式下,GDO0 通常为低电平。
当 MCU 下达 SRX(接收)指令后,如果接收到封包并且 preamble 和 syncword 正确,GDO0 会从低电平变为高电平,表示正在接收数据。
GDO0 在接收完成时由高电平变为低电平,表示接收过程结束。
你可以配置 GDO0 为下降沿中断,以便在接收到数据包时触发中断。

GDO1 和 GDO2:
我没有使用

寄存器:
寄存器主要分为配置寄存器、选通命令、发射功率寄存器和 TX/RX FIFO。
配置寄存器(0x00 到 0x2F)用于配置 CC2500 的各种参数,如频率通道、调制方式等。
选通命令寄存器(0x30 到 0x3F)用于在执行读写寄存器操作时切换模式。
发射功率寄存器(0x3E)决定发射功率级别,最多可设置 8 组,共 8 种功率。
TX/RX FIFO 寄存器(0x3F)用于在发送和接收时进行数据传输。

在使用过程中,我要将我获取到的液压气的数据发送出去并接收,我先将存储在一个变量,然后将他们分割为低字节和高字节,分别存储在TXBuffer数组的前两个位置。然后和CRC校验值一起打包发送。
发送:

// 将传感器数据存储在发送缓冲区中
    adc_value_m4 = m4_value;
	adc_value_m6 = m6_value;
	rfIntRequest = 0;	
	TXBuffer[0] = adc_value_m4 & 0xFF; // 低字节
    TXBuffer[1] = (adc_value_m4 >> 8) & 0xFF; // 高字节
    TXBuffer[2] = adc_value_m6 & 0xFF; // 低字节
    TXBuffer[3] = (adc_value_m6 >> 8) & 0xFF; // 高字节
	crc_value = RadioComputeCRC(TXBuffer, 4, CRC_TYPE_IBM);//CRC  
	TXBuffer[4] = crc_value >> 8;
	TXBuffer[5] = crc_value;
	SendPacket(TXBuffer, TXBuffer[0]+1);

接收:

// 解析接收到的数据
        adc_value_m4 = (RXBuffer[1] << 8) | RXBuffer[0];
        adc_value_m6 = (RXBuffer[3] << 8) | RXBuffer[2];
        received_crc_value = (RXBuffer[4] << 8) | RXBuffer[5];
		
				if (received_crc_value == RadioComputeCRC(RXBuffer, 4, CRC_TYPE_IBM)) // CRC check 
				{
					delay_ms(100); //延时100ms
					LED1 = 0;
					delay_ms(100); //延时100ms
					LED1 = 1;//接收到正确数据 LED闪烁
					OLED_Clear();	
					sprintf((char *)buff,"M_4    :%d",adc_value_m4);
					OLED_ShowString(8,1,buff,12);
					sprintf((char *)buff,"M_6    :%d",adc_value_m6);
					OLED_ShowString(8,2,buff,12);	
				}			 

完整代码下载地址,只有传送部分仅供参考:
https://github.com/hana-kami/CC2500

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/930385.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Qt学习】03:QMainWindow

QMainWindow OVERVIEW QMainWindow一、QMainWindow1.菜单栏2.工具栏3.状态栏4.铆接部件5.核心部件6.练习 二、ui资源文件 QMainWindow是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏menu bar、多个工具栏tool bars、多个锚接部件dock widgets、一个状态栏status ba…

【SpringBoot】第二篇:RocketMq使用

背景&#xff1a; 本文会介绍多种案例&#xff0c;教大家如何使用rocketmq。 一般rocketmq使用在微服务项目中&#xff0c;属于分模块使用。这里使用springboot单体项目来模拟使用。 本文以windows系统来做案例。 下载rocketmq和启动&#xff1a; RocketMQ 在 windows 上运行…

基于ssm+vue德云社票务系统源码和论文

基于ssmvue德云社票务系统源码和论文063 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 1.选题的依据和意义 互联网时代&#xff0c;随着生活节奏的加快和不断上升的压力&#xff0c;人们急需寻找到情绪的宣泄…

你工作效率低,可能是因为不会Python...

前言 你是不是感觉你的工作非常无聊&#xff0c;每天有大量的重复性的工作要做&#xff0c;比如在我的工作中&#xff0c;就有很多类似的动作。每天早上要看我们DevOps流水线跑出的结果&#xff0c;查看各个微服务中的重复代码率是多少&#xff0c;有没有增加&#xff0c;Clea…

【Qt学习】06:事件与事件过滤器

OVERVIEW 事件与事件过滤器一、事件1.鼠标事件创建子类MyLabel重写鼠标事件提升Label控件为MyLabel 2.定时器事件timerEventQTimer 3.事件分发器&#xff08;event函数&#xff09;event函数重写event函数深入 二、事件过滤器1.事件过滤器2.事件处理的五个层次 事件与事件过滤器…

VMVareC++开发环境快速配置

OVERVIEW VMVareC开发环境快速配置ipgitvimgithubzshgcc&g&cmakesshifconfigmysqlnginxredisgdb VMVareC开发环境快速配置 VMVareC开发环境快速配置&#xff0c;为了省时间快速整理出文档方便以后快速配置&#xff0c; 按照这个流程直接可以快速得到一个舒适的C/C开发…

[论文阅读笔记25]A Comprehensive Survey on Graph Neural Networks

这是一篇GNN的综述, 发表于2021年的TNNLS. 这篇博客旨在对GNN的基本概念做一些记录. 论文地址: 论文 1. 引言, 背景与定义 对于图像数据来说, CNN具有平移不变性和局部连接性, 因此可以在欧氏空间上良好地学习. 然而, 对于具有图结构的数据(例如社交网络 化学分子等)就需要用…

用AI + Milvus Cloud搭建着装搭配推荐系统

在上一篇文章中,我们学习了如何利用人工智能技术(例如开源 AI 向量数据库 Milvus Cloud 和 Hugging Face 模型)寻找与自己穿搭风格相似的明星。在这篇文章中,我们将进一步介绍如何通过对上篇文章中的项目代码稍作修改,获得更详细和准确的结果,文末附赠彩蛋。 注:试用此…

Excel 打开文件提示内存或磁盘不足

Excel表格打开文件时&#xff0c;提示内存或磁盘空间不足&#xff0c;Microsoft Excel 无法再次打开或保存任何文档&#xff0c;这是很多人都会遇到的问题&#xff0c;该如何解决这个问题呢&#xff1f;如果你是用Excel表格打开某个文件时遇到提示内存或磁盘空间不足&#xff0…

学好嵌入式,未来能干啥?

很多对嵌入式行业不了解的人会以为嵌入式就是单纯搞单片机的工作。甚至有很多专业学生也抱有这种观念。 这种现象的原因在于大学专业中没有专门针对嵌入式行业的完善专业体系。嵌入式的知识体系庞大&#xff0c;不同的方向需要的知识差异很大。关于嵌入式学习路线&#xff0c;网…

Django(4)-Django 管理页面

创建一个管理员账号 python manage.py createsuperuser运行项目&#xff0c;访问http://127.0.0.1:8080/admin&#xff0c;可以看到管理员界面 管理页面加上投票应用 polls/admin.py from django.contrib import admin# Register your models here. from .models import …

npm和yarn的区别?

文章目录 前言npm和yarn的作用和特点npm和yarn的安装的机制npm安装机制yarn安装机制检测包解析包获取包链接包构建包 总结后言 前言 这一期给大家讲解npm和yarn的一些区别 npm和yarn的作用和特点 包管理&#xff1a;npm 和 yarn 可以用于安装、更新和删除 JavaScript 包。它们提…

腾讯云服务器可用区是什么?可用区怎么选择?

腾讯云服务器可用区是什么意思&#xff1f;可用区是指同一地域内电力和网络互相独立的物理数据中心&#xff0c;腾讯云每个地域下都有多个可用区供选择&#xff0c;将应用部署到不同可用区能够做到故障隔离&#xff0c;提升应用的可靠性和容灾性&#xff0c;阿腾云来详细说下什…

SpringMVC 第二天

第 1 章 ModelAttribute 和 SessionAttribute[ 应 用 ] 1.1ModelAttribute 1.1.1 使用说明 作用&#xff1a; 该注解是 SpringMVC4.3 版本以后新加入的。它可以用于修饰方法和参数。 出现在方法上&#xff0c;表示当前方法会在控制器的方法执行之前&#xff0c;先执行…

综合能源系统(9)——综合能源系统运行管控平台技术

综合能源系统关键技术与典型案例  何泽家&#xff0c;李德智主编 1、综合能源系统运行管控平台技术发展现状 在综合能源服务蓝海市场驱动下&#xff0c;作为能源和互联网跨界融合中枢产品&#xff0c;综合能源服务平台取得了较大进展。综合能源服务平台属性示意图如图3-47所…

Jvm之JIT优化详细解释

文章目录 一、JIT 产生的背景二、HotSpot虚拟机内置JIT编译器1. Client Compiler2. Server Compiler3. 查看本地编译器模式 三、常见热点探测技术1. 基于计数器的热点探测2. 基于采样的热点探测2.1 方法调用计数器2.2 回边计数器 四、常见JIT优化手段1. 公共子表达式消除2. 方法…

vue登录验证码组件,前端验证

效果图 点击可以切换验证码 自定义组件 <template><div class"s-canvas"><canvas id"s-canvas" :width"contentWidth" :height"contentHeight"></canvas></div> </template> <script> e…

左偏树\可并堆

https://www.luogu.com.cn/problem/P3377 作用&#xff1a;可并堆 形态&#xff1a;堆满二叉树 即左节点最小深度大于等于右节点最小深度 合并过程&#xff1a;

谷歌浏览器响应Failed to load response data: no resource with given identifer found

1、如下问题展示&#xff0c;这个是新版谷歌浏览器的不知道啥时候出现的问题&#xff0c;以前旧版未出现过&#xff0c;所以降版本浏览器可能可以 2、但是&#xff0c;博主的方法是换一个浏览器&#xff0c;换成edge就没问题了&#xff0c;由于用习惯了谷歌&#xff0c;所以这…

算法竞赛入门【码蹄集新手村600题】(MT1220-1240)C语言

算法竞赛入门【码蹄集新手村600题】(MT1220-1240&#xff09;C语言 目录MT1221 分数的总和MT1222 等差数列MT1223 N是什么MT1224 棋盘MT1225 复杂分数MT1226 解不等式MT1227 宝宝爬楼梯MT1228 宝宝抢糖果MT1229 搬家公司MT1230 圆周率MT1231圆周率IIMT1232 数字和MT1233 数字之…