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

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.xdnf.cn/news/3501.html

相关文章:

  • 【符号调制技术与载波调制技术】
  • JavaScript性能优化实战之运行时性能优化
  • 融智学数学符号体系的系统解读(之一)
  • 【Android】Intent
  • Android Framework学习二:Activity创建及View绘制流程
  • 2025大模型安全研究十大框架合集(10份)
  • 010302-oss_反向代理_负载均衡-web扩展2-基础入门-网络安全
  • 多模态RAG演进-MRAG1.0->MRAG2.0->MRAG3.0
  • 游戏引擎学习第254天:重新启用性能分析
  • 白蚁检测数据集VOC+YOLO格式949张2类别
  • 【计算机视觉】三维视觉:Instant-NGP:实时神经辐射场的革命性突破
  • MSP430G2553驱动0.96英寸OLED(硬件iic)
  • docker安装jenkins v2.504.1集群
  • 【业务领域】InfiniBand协议总结
  • Flowable7.x学习笔记(十七)审批我的待办
  • MySQL 第一讲---基础篇 安装
  • Linux 下使用tcpdump进行网络分析原
  • 颠覆者DeepSeek:从技术解析到实战指南——开源大模型如何重塑AI生态
  • 紫荆阁电玩平台环境搭建与系统运行实录(蒙特卡洛系列)
  • 单片机-STM32部分:1、STM32介绍
  • 【SpringBoot】Spring中事务的实现:声明式事务@Transactional、编程式事务
  • 纯前端专业PDF在线浏览器查看器工具
  • 【数据结构】String字符串的存储
  • 当MCP撞进云宇宙:多芯片封装如何重构云计算的“芯“未来?
  • 循环插入数据库行
  • LEETERS题解
  • 【速写】prune与activate
  • 尝试leaflet+webassemly
  • 【Python-Day 8】从入门到精通:Python 条件判断 if-elif-else 语句全解析
  • day09-面向对象综合训练