单片机基于TXW8301的Wi-Fi Halow物联网控制

news2024/9/17 4:42:05

目前市面上基于2.4/5.8G wifi通讯信号干扰很频繁,基于Wi-Fi Halow的sub1g wifi既可以绕过干扰还可以达到公里级别控制,并且实现高清图传非常方便。

什么是Wi-Fi Halow?有何优势?

早在2016年3月,Wi-Fi联盟就针对物联网市场发布了一项无线局域网的物理层和媒体接入控制层协议,其是能在低于1GHz(750MHz—930MHz)免许可的频段内运行的新型WLAN系统标准,即IEEE 802.11ah,该技术又被称为Wi-Fi Halow。

由于Wi-Fi Halow可以运行在低于1GHz的频段,这也使得其能够保持相对较高速率的基础上,实现更长距离、更低功耗的连接,可以满足很多对于传输速率、距离、功耗有着更高要求的物联网市场的需求。

在stm32/gd32上基于spi接口的驱动代码库

#include "txw8301.h"

//下发消息处理
static void CMD_Recv_Handle(void const *argument)
{
	   osEvent evt;
	
	   uint8_t*cmdstr;
	   uint8_t cmdstrlen;
	
	   TXW8301_Init();

		 //方便TXW8301_Init中有消息投递处理
		 while(!Is_CMD_Empty())
		 {
					Out_CMD_Queue(&cmdstr,&cmdstrlen);
					
					if(Is_CommonCmd(cmdstr,cmdstrlen))
					{
							Cmd_Resolve(cmdstr,cmdstrlen); 
					}
		}	
					
	   //wifi正常启动则自动使能wps功能 
	   is_wifi_wps_enabled = TRUE;
	
	   for(;;)
	   {
			 
			  // wait for a signal
			  evt = osSignalWait (SIGNAL_CUSTOM_01, osWaitForever);
			  if (evt.status != osEventSignal)  continue;

			    
			 
             /**
			    TXW8301的TX和RX存在先后顺序,不能并行,只能采用互斥锁防冲突
			    
			 */			 
			  osMutexWait(mutex_upload_id,osWaitForever);
			 
			  TXW8301_Rx();
			 
			  osMutexRelease(mutex_upload_id);
			 
			 
			  while(!Is_CMD_Empty())
			  {
					Out_CMD_Queue(&cmdstr,&cmdstrlen);
							
					if(Is_CommonCmd(cmdstr,cmdstrlen))
					{
						Cmd_Resolve(cmdstr,cmdstrlen); 
					}
			  }	
			 
		 }
}

osThreadId cmd_recv_id = NULL;
osThreadDef (CMD_Recv_Handle, osPriorityRealtime, 1, 0); 

///


上报消息
void Upload_Period_Protocol(void)
{
	     uint8_t*sendata;
	     uint8_t sendatalen;
	
		 osMutexWait(mutex_upload_id,osWaitForever);
		 
		 if(!Is_Upload_Empty())
		 {
				 Out_Upload_Queue(&sendata,&sendatalen); 
				 //USART1_SendBuf(sendata,sendatalen);
			 
         TXW8301_Tx(sendata,sendatalen);		
		 
		 }
		 
		 osMutexRelease(mutex_upload_id);
}

///

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

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

相关文章

YOLO v8目标检测(二)—v8理论与模型推理

YOLO v8目标检测 数据增强 使用场景:在数据加载器加载数据的过程中会使用到数据增强的相关方法,来构造数据集。模型推理方法进行学习之前首先复习了解图像数据增强的相关方法和步骤。 其中在v8的源代码中 augment.py 的源代码文件。它包含了几个用于数据…

【python】python基于 Q-learning 算法的迷宫游戏(源码+论文)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

java项目数据库 mysql 迁移到 达梦

目录 一、下载安装达梦数据库 1、下载 2、解压 3、安装 二、迁移 三、更改SpringBoot 的 yml文件 1、达梦创建用户 2、修改yml 一、下载安装达梦数据库 1、下载 下载地址 https://eco.dameng.com/download/ 点击下载 开发版 (X86平台) , 然后选择操作系统并点击立…

重装win10系统,“我们无法创建新的分区 也找不到现有的分区”“我们无法更新系统保留的分区”

重装系统,最开始用这篇教程保留数据的重装系统教程!(win10系统)_win10重装系统保留c盘数据-CSDN博客里win10官方的更新方法。想保留C盘以外的数据来重装系统 然后就会提示“我们无法更新系统保留的分区” 查到网上说这是因为MSR分…

python基础巩固

基本数据类型 可以用isinstance来判断 a111 isinstance(a,int) True数值运算: >>> 2 / 4 # 除法,得到一个浮点数 0.5 >>> 2 // 4 # 除法,得到一个整数 0 >>> 17 % 3 # 取余 2Python 字符串不能被改变。向一个…

支持向量机 及其分类案例详解(附Python 代码)

支持向量机分类器预测收入等级 我们将构建一个支持向量机(SVM)分类器,以预测一个人基于14个属性的收入等级。我们的目标是判断收入是否高于或低于每年$50,000。因此,这是一个二元分类问题。我们将使用在此处可用的人口普查收入数…

MySQL数据库(基础篇)

🌏个人博客主页:心.c 前言:今天讲解的是MySQL的详细知识点的,希望大家可以收货满满,话不多说,直接开始搞! 🔥🔥🔥文章专题:MySQL 😽感…

语言转文字

因为工作原因需要将语音转化为文字,经常搜索终于找到一个免费的好用工具,记录下使用方法 安装Whisper 搜索Colaboratory 右上方链接服务 执行 !pip install githttps://github.com/openai/whisper.git !sudo apt update && sudo apt install f…

Arduino IDE界面和设置(基础知识)

Arduino IDE界面和设置(基础知识) 1-2 Arduino IDE界面和设置如何来正确选择Arduino开发板型号如何正确选择Arduino这个端口如何来保存一个Arduino程序Arduino ide 的界面功能按钮验证编译上传新建打开保存工作状态 1-2 Arduino IDE界面和设置 大家好这…

软设之数据库概念结构设计

集成的方法: 多个局部E-R图一次集成 逐步集成,用累加的方式一次集成两个局部E-R 集成产生的冲突及解决办法: 属性冲突:包括属性冲突和属性取值冲突 命名冲突:包括同名异义和异名同义 结构冲突:包括同…

react.16+

1、函数式组件 在vite脚手架中执行&#xff1a; app.jsx: import { useState } from react import reactLogo from ./assets/react.svg import viteLogo from /vite.svg import ./App.cssfunction App() {console.log(this)return <h2>我是函数式组件</h2> }exp…

如何通过注解注入一个自定义的FactoryBean

一、引入依赖二、定义一个注解三、创建一个FactoryBean四、创建一个BeanPostProcessor4.1 其他关联类AnnotationUtilsServiceBeanNameBuilder 五、注入InstantiationAwareBeanPostProcessor到IoC中5.1 实现ImportBeanDefinitionRegistrar接口5.2 通过Import注入 六、使用6.1 打…

【proteus经典项目实战】51单片机用计数器中断实现100以内的按键计数并播放音乐

一、简介 一个基于8051微控制器的计数器系统&#xff0c;该系统能够通过按键输入递增计数&#xff0c;并且能够在达到100时归零。该系统将使用计数器中断和外部中断来实现其功能。 51单片机因其简单易用和成本效益高&#xff0c;成为电子爱好者和学生的首选平台。通过编程单片…

猫头虎分享 || 最全Python的Scapy库基础知识点汇总

&#x1f431;‍&#x1f464; 猫头虎分享 || Python的Scapy库基础知识点汇总 摘要 Scapy 是一个强大的Python库&#xff0c;用于网络数据包的生成、解析和操作。通过Scapy&#xff0c;开发者可以轻松地创建自定义数据包&#xff0c;捕获网络流量&#xff0c;并执行网络扫描。…

算法日记day 22

一、二叉搜索树中的插入操作 题目&#xff1a; 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和要插入树中的值 value &#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 &#xff0c;新值和原始二叉搜索树中的任意节点值都不同。…

Python学习笔记46:游戏篇之外星人入侵(七)

前言 到目前为止&#xff0c;我们已经完成了游戏窗口的创建&#xff0c;飞船的加载&#xff0c;飞船的移动&#xff0c;发射子弹等功能。很高兴的说一声&#xff0c;基础的游戏功能已经完成一半了&#xff0c;再过几天我们就可以尝试驾驶 飞船击毁外星人了。当然&#xff0c;计…

【优秀python web系统毕设】基于python的全国招聘数据分析可视化系统,包括随机森林算法

1.1 研究背景 自1997年互联网开始在国内的招聘行业发展至今已有二十几年的历史&#xff0c;互联网招聘进入了蓬勃发展的“黄金时代”。根据智研咨询发布的《2023年中国互联网招聘行业发展现状》报告显示&#xff0c;截至2023年5月&#xff0c;中国互联网招聘平台中&#xff0c…

数据结构(Java):反射枚举Lambda表达式

目录 1、反射 1.1 反射的定义 1.2 反射机制的原理 1.3 反射相关类 1.4 Class类 1.4.1 相关方法 1.4.1.1 常用获得类相关的方法 ​编辑 1.4.1.2 常用获得类中属性相关的方法 1.4.1.3 获得类中构造器相关的方法 1.4.1.4 获得类中方法相关的方法 1.4.2 获取Class对象 1.…

DeFi革命:揭秘去中心化金融的核心技术与实操指南

目录 DeFi&#xff08;去中心化金融&#xff09;综述 基本特点 第一&#xff0c;DeFi 是无许可的金融 第二&#xff0c;DeFi 是无门槛的金融 第三&#xff0c;DeFi 是无人驾驶的金融 典型商业模式 闪电贷 MakerDAO 面临的挑战 DeFi技术要点 椭圆曲线签名 EIP-712:…

IS-LM模型的公式与应用解析

IS-LM模型的公式与应用解析 IS-LM模型的核心作用 IS-LM模型是宏观经济学中的一个重要工具&#xff0c;用于分析财政政策和货币政策对经济的影响。IS曲线代表商品市场均衡&#xff0c;LM曲线代表货币市场均衡。两条曲线的交点表示商品市场和货币市场同时达到均衡时的利率和收入…