STM32F407使用该程序主要是复用串口3用来接收PM2.5所发出的数据,然后获取所需要的pm2.5的值,引脚接口为pb11和pb10,5v电压。

u8 USART3_RX_BUF[USART3_REC_LEN];
u16 USART3_RX_STA=0;
u16 flag3=0;
void uart3_init(u32 bound){GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);GPIO_PinAFConfig(GPIOB,GPIO_PinSource10,GPIO_AF_USART3);GPIO_PinAFConfig(GPIOB,GPIO_PinSource11,GPIO_AF_USART3); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOB,&GPIO_InitStructure);USART_InitStructure.USART_BaudRate = bound;USART_InitStructure.USART_WordLength = USART_WordLength_8b;USART_InitStructure.USART_StopBits = USART_StopBits_1;USART_InitStructure.USART_Parity = USART_Parity_No;USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;    USART_Init(USART3, &USART_InitStructure);    USART_Cmd(USART3, ENABLE); #if EN_USART3_RX    USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=2;NVIC_InitStructure.NVIC_IRQChannelSubPriority =2;  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;         NVIC_Init(&NVIC_InitStructure);   #endif}
u8 Res;
void USART3_IRQHandler(void)
{u16 t=0;if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)  {Res =USART_ReceiveData(USART3);  USART3_RX_BUF[USART3_RX_STA++]=Res ;if(USART3_RX_STA == 32){flag3 = 1;USART3_RX_STA = 0;}
}

在main函数中:

int main(void)
{u16 pm25;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);delay_init(168);   uart3_init(9600);    uart_init(115200);while(1){if(flag3){pm25 = USART3_RX_BUF[6] * 100 + USART3_RX_BUF[7];printf("pm2.5:%d\n",pm25);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);delay_ms(1000);flag3 = 0;}}
}

在此模块中传出的数据一共有32位,第6位和第7位数据为pm2.5的数据。6为高位,7为低位

STM32F407使用串口3获取攀腾G7的PM2.5数据相关推荐

  1. 个人物联网(目前用到了树莓派、PMS7003攀藤g7传感器、DHT11温湿度传感器)

    上周空气不好,突发奇想要搞个个人物联网系统,检测生存环境.手头有树莓派.NodeMCU esp8266.DHT11温湿度传感器.pm2.5检测需要专门的传感器,本以为也就几块钱,结果发现淘宝还挺贵.在 ...

  2. 组一个包括协调器路由器终端节点的zigbee网络,通过串口能获取它们的拓扑结构。

    组一个包括协调器路由器终端节点的zigbee网络,通过串口能获取它们的拓扑结构. 实验简介 实验环境 实验准备 1.下载基本工程文件 2.打开工程文件 3.尝试编译 路由器和终端节点 查看完整原文 旧 ...

  3. 【应用实例】单片机PM2.5空气监测仪--攀藤G5激光PM2.5传感器

    一.功能简述 基于Arduino控制,利用攀藤G5激光传感器测量PM值,DHT11温湿度传感器测量温湿度,1602LCD显示数据.外接一个继电器,当达到一定污染值时启动净化风扇. 焊接之后大概是这个样 ...

  4. STM32F407霸天虎HAL库学习笔记——使用ADC采集MQ135的数据并通过OLED显示

    STM32F407霸天虎HAL库学习笔记--使用ADC采集MQ135的数据并通过OLED显示 一.软件准备 二.硬件准备 三.CubeMX配置 四.Keil MQ135.c MQ135.h main函 ...

  5. mySql比较并获取当前时间x分钟之前的数据(时间是字符串类型)

    实现方法一 获取当前时间15分钟之前的数据(addTime是添加时间),15是分钟 select * from sys_user where timestampdiff(second,date_add ...

  6. mysql获取当月数据_MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  7. STM32使用串口IDLE中断的两种接收不定长数据的方式

    现在有很多数据处理都要用到不定长数据,而单片机串口的RXNE中断一次只能接收一个字节的数据,没有缓冲区,无法接收一帧多个数据,现提供两种利用串口IDLE空闲中断的方式接收一帧数据,方法如下: 方法1: ...

  8. MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  9. 快速获取csv数量_【数量技术宅|数据爬虫系列分享】如何获取免费的数字货币历史数据...

    更多精彩内容,欢迎关注公众号:数量技术宅 数字货币历史数据的重要性 以BTC.ETH为代表数字货币作为一个新兴市场,散户参与度高.市场效率低,表现在价格上时常会走出高波动率,和一大波的趋势行情.相比较 ...

最新文章

  1. 独家 | ​PyMC3 介绍:用于概率编程的Python包
  2. 常见排序算法效率比较
  3. Oracle导表语句
  4. netty框架_Netty实战:设计一个IM框架
  5. SAP系统与MES系统的数据协同技术方案
  6. 嵌入式基础之----C++
  7. Jdbc连接mysql的五种连接方式
  8. 查询阜阳2021高考成绩,2021年阜阳高考成绩排名及成绩公布时间什么时候出来
  9. 分布式文件系统-HDFS(   HDFS全称是Hadoop Distributed System)
  10. rsync+sersync多线程实时同步
  11. Mac AI技术图像编辑软件:Luminar Neo
  12. Kotlin习惯用语和编码风格[转自Kotlin中文文档]
  13. 谷歌浏览器历史版本解决chrome浏览器安装不上的问题
  14. 《Redis开发与运维》学习第八章
  15. CiscoPacketTracer网络模拟
  16. CAD标注中全局比例(DIMSCALE)与比例因子(DIMLFAC)区别
  17. 全网最新最细最全最牛的jmeter接口测试,性能测试,没有之一,如有雷同纯属抄袭。
  18. 牛客错题集C++(一)
  19. PostgreSQL提示:‘psql: FATAL: ”Peer authentication failed for user ”postgres“’错误#将文件Database administ
  20. 01【AutoSAR 】- Partial Networking

热门文章

  1. 基于51单片机的温湿度光强二氧化碳气体家庭环境检测proteus仿真
  2. ubuntu8.10显卡驱动安装(8500gt)
  3. 高通 安卓 Uefi 的理解
  4. WEB学习——JQury
  5. 国开电大 光伏电池原理与工艺 形考任务
  6. 一个好的肖像造型需要学习哪些3D建模知识?
  7. 简单描述下微信小程序的相关文件类型?
  8. 用计算机弹歌曲fade,抖音短视频踢脚舞是什么歌 Faded歌曲分享
  9. Win10开始菜单点击没有反应打不开怎么办?
  10. 易周金融 | 邮惠万家银行开业;微信公众号叫停四类金融营销宣传