当前位置: 首页 > news >正文

STM32 ZIBEE DL-20 无线串口模块

 一.配置方法

 二.串口中断

u8 i;
u16 buf[20],res;
u8 receiving_flag = 0; // 新增一个标志,用于标记是否开始接收数组
void USART1_IRQHandler(void)
{if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断{res = USART_ReceiveData(USART1);if(receiving_flag == 0){i=0;buf[0] = res;if(res == 'B'){receiving_flag = 1;i++;}}else if(receiving_flag == 1){buf[i] = res;i++;if(res == 'E'){receiving_flag = 2;}if(i>=19){i = 0;receiving_flag = 0;}}USART_ClearFlag(USART1, USART_FLAG_RXNE);}
}void Usart1_Init(unsigned int baud)
{GPIO_InitTypeDef gpio_initstruct;USART_InitTypeDef usart_initstruct;NVIC_InitTypeDef nvic_initstruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//PA9	TXDgpio_initstruct.GPIO_Mode = GPIO_Mode_AF_PP;gpio_initstruct.GPIO_Pin = GPIO_Pin_9;gpio_initstruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &gpio_initstruct);//PA10	RXDgpio_initstruct.GPIO_Mode = GPIO_Mode_IN_FLOATING;gpio_initstruct.GPIO_Pin = GPIO_Pin_10;gpio_initstruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOA, &gpio_initstruct);usart_initstruct.USART_BaudRate = baud;usart_initstruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;		//无硬件流控usart_initstruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;						//接收和发送usart_initstruct.USART_Parity = USART_Parity_No;									//无校验usart_initstruct.USART_StopBits = USART_StopBits_1;								//1位停止位usart_initstruct.USART_WordLength = USART_WordLength_8b;							//8位数据位USART_Init(USART1, &usart_initstruct);USART_Cmd(USART1, ENABLE);														//使能串口USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);									//使能接收中断nvic_initstruct.NVIC_IRQChannel = USART1_IRQn;nvic_initstruct.NVIC_IRQChannelCmd = ENABLE;nvic_initstruct.NVIC_IRQChannelPreemptionPriority = 0;nvic_initstruct.NVIC_IRQChannelSubPriority = 2;NVIC_Init(&nvic_initstruct);}

三.子板获取数据
 

//反向控制接受
void toContent(){if(receiving_flag == 2){receiving_flag = 0;for(a = 0; a < 20; a++) {				 if(buf[a]=='W'){maxyw=buf[a+1];		 }if(buf[a]=='x'){yw=buf[a+1];		 }if(buf[a]=='b'){FLAME=buf[a+1];		 }}}
}

四.主板发送数据

void zigbeTOb(){if(time_count>100){time_count = 0;USART_SendData(USART1,'B');delay_ms(1);USART_SendData(USART1,'x');delay_ms(1);USART_SendData(USART1,yw);delay_ms(1);USART_SendData(USART1,'b');delay_ms(1);USART_SendData(USART1,FLAME);delay_ms(1);USART_SendData(USART1,'E');delay_ms(1);}
}

http://www.dtcms.com/a/168603.html

相关文章:

  • Linux Netlink机制:现代网络通信的核心
  • C++ set和map
  • 5月2日日记
  • 普通IT的股票交易成长史--20250502 突破(1)
  • 动态规划算法精解(Java实现):从入门到精通
  • [HOT 100] 0124. 二叉树中的最大路径和
  • 从零开始讲DDR(8)——AXI 接口MIG 使用(1)
  • 滥用绑定变量导致Oracle实例宕机
  • nt!NtReplyWaitReceivePortEx函数分析之nt!LpcpMoveMessage拷贝csr_api_msg
  • NV162NV172美光固态颗粒NV175NV188
  • 010302-oss_反向代理_负载均衡-web扩展2-基础入门-网络安全
  • AI日报 · 2025年05月02日 | 再见GPT-4!OpenAI CEO 确认 GPT-4 已从 ChatGPT 界面正式移除
  • Linux——进程终止/等待/替换
  • # 前后端分离象棋对战项目开发记录
  • AE/PR插件 转场创建大师专业版 Transition Master Pro v2.0.2 Win+使用教程
  • 2025年- H21-Lc129-160. 相交链表(链表)---java版
  • Spring Boot 集成 Elasticsearch 的详细步骤
  • new的几种形式
  • Python 数据智能实战 (7):智能流失预警 - 融合文本反馈
  • 创意效率双提升,AIGC让增长更轻盈
  • Spring Boot中集成Guava Cache或者Caffeine
  • 第 1 篇:起点的选择:为何需要超越数组与链表?
  • 菲索旋转齿轮法:首次地面光速测量的科学魔术
  • 信息收集新利器:SSearch Chrome 插件来了
  • ROPE(旋转位置编码)简述
  • 当神经网络突破摩尔定律:探索大模型时代的算力新纪元
  • AimRT从入门到精通 - 03Channel发布者和订阅者
  • PDF智能解析与知识挖掘:基于pdfminer.six的全栈实现
  • 【论文阅读一】掌握高效阅读法,开启学术研究新旅程:S. Keshav教授论文阅读的三遍法
  • 华为OD机试真题 Java 实现【水库蓄水问题】