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

目前市面上基于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);
}

///

  • 11
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值