蓝桥杯物联网竞赛_STM32L071_15_ADC/脉冲模块

在这里插入图片描述

ADC模块用的是RP1不用多说了,主要是脉冲模块,这个模块没考过

这个脉冲模块放出脉冲,主要能用TIM捕获到这个脉冲的高电平持续时间即可

在这里插入图片描述

CubMx配置:

在这里插入图片描述
脉冲模块的引脚与PB0相连,所以用PB0读取上升沿记的数和下降沿记的数,后前相减就是高电平记的数

CubeMx配置:

在这里插入图片描述
internal clock 内部时钟

input capture direct mode 输入捕获测量脉宽

channel3 通道3

类似GPIO INPUT读取外部电平

在这里插入图片描述
中断enable

在这里插入图片描述
预分配设置3200,1s记录1000000 / 100个数,那么记录一个数花费0.1ms

自动重装enable

kil5:

void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)  // 定时器捕获中断回调函数

在触发上升沿或者下降沿的时候会进入这个中断函数,设置上升沿下降沿在polarity selection中

HAL_TIM_ReadCapturedValue(&htim3,TIM_CHANNEL_3);	//读取计数器的值

显示计数器的值

__HAL_TIM_SET_CAPTUREPOLARITY(&htim3,TIM_CHANNEL_3,TIM_ICPOLARITY_FALLING);	 // 设置触发条件

设置下次中断为下降沿

代码:

#include "Function.h"
#include "main.h"
#include "oled.h"
#include "i2c.h"
#include "tim.h"
#include <stdio.h>

uint16_t ENDNUMBER = 0;
uint16_t BEGINNUMBER = 0;
uint16_t TIMSTATE = 0;
char ARRAY1[20];

void OLED_Write(unsigned char type, unsigned char data){
	unsigned char WriteData[2];
	WriteData[0] = type;
	WriteData[1] = data;
	HAL_I2C_Master_Transmit(&hi2c3, 0x78, WriteData, 2, 0xff);
}
void Function_OledInit(unsigned char ms){
	HAL_GPIO_WritePin(OLED_Power_GPIO_Port, OLED_Power_Pin, GPIO_PIN_RESET);
  HAL_Delay(ms);
	OLED_Init();
}

void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim){
  if(htim == &htim3){
		if(TIMSTATE == 0){
			TIMSTATE ++;
			BEGINNUMBER = HAL_TIM_ReadCapturedValue(&htim3, TIM_CHANNEL_3);
			__HAL_TIM_SET_CAPTUREPOLARITY(&htim3, TIM_CHANNEL_3, TIM_ICPOLARITY_FALLING);
		}else if(TIMSTATE == 1){
			TIMSTATE ++;
			__HAL_TIM_SET_CAPTUREPOLARITY(&htim3, TIM_CHANNEL_3, TIM_ICPOLARITY_RISING);
		}else if(TIMSTATE == 2){
			TIMSTATE ++;
			ENDNUMBER = HAL_TIM_ReadCapturedValue(&htim3, TIM_CHANNEL_3);
		}
	}
 
}

void Function_PuseCheck(){
	if(TIMSTATE == 3){
		sprintf(ARRAY1, "%.1f", (float) (ENDNUMBER - BEGINNUMBER) / 10);
		OLED_ShowString(0, (unsigned char* )ARRAY1);
		TIMSTATE = 0;
	}
  HAL_Delay(500);
}

void Function_MyMain(){
	 Function_PuseCheck();
}
HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_3);

主函数一定要使能要不然进不了中断函数

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 蓝桥杯物联网设计与开发考试不会要求考生编写 OLED 和 LoRa 的驱动程序。而是更注重考察考生在物联网设计与开发方面的综合能力和技术应用能力。 物联网设计与开发是指将各种物理设备和传感器通过互联网连接起来,实现数据的采集、传输、处理和应用。在这个过程中,OLED 和 LoRa 是常见的硬件设备和无线通信技术。 OLED(Organic Light-Emitting Diode)属于一种发光二极管显示器。它具有自发光、超薄、高对比度和低功耗等优点。在物联网应用中,OLED 可以用于显示各种传感器的数据或者设备的工作状态。 LoRa(Long Range)是一种低功耗、远距离的无线通信技术。它适用于物联网场景下的远距离传输和低功耗要求。LoRa 可以实现传感器数据的远程传输和远程控制等功能。 在蓝桥杯物联网设计与开发考试中,考生可能会遇到使用 OLED 和 LoRa 的实际应用案例。但不要求考生编写硬件驱动程序。考察的重点更多在于考察考生对物联网的整体设计能力、对数据传输和处理的技术理解和实践经验。 因此,考生需要掌握物联网系统的搭建和调试技巧、熟悉各种通信协议和传输技术、了解各种传感器的工作原理和数据处理方法。掌握这些基础知识和技能,能够实际应用到物联网实际项目中,才能在蓝桥杯物联网设计与开发考试中取得好的成绩。 ### 回答2: 蓝桥杯物联网设计与开发考试会给oled和lora驱动。 蓝桥杯物联网设计与开发考试是一个对物联网相关知识的综合考核,其中会考察对各种传感器、驱动设备的使用能力。而oled和lora作为物联网应用中常用的两种驱动设备,理应在考试中被考察。 OLED是一种有机发光二极管显示技术,可以实现高对比度、高亮度、宽视角的显示效果。在物联网设计中,使用OLED可以将各种数据或者信息以直观的方式呈现出来,提高用户体验。因此,考试中会对OLED的使用方法进行考察,包括初始化、显示文本或图片等相关操作。 Lora是一种低功耗远距离无线通信技术,适用于物联网中传感器节点之间的数据传输。它具有长距离传输能力和低功耗的特点,可以实现在数百米至几公里范围内的无线通信。在物联网设计中,使用Lora可以实现传感器的数据采集和上传,从而构建起一个完整的无线传感器网络。因此,考试中也会对Lora的使用方法进行考察,包括Lora模块的初始化、数据发送和接收等相关操作。 综上所述,蓝桥杯物联网设计与开发考试会考察对于oled和lora的驱动。通过对这些驱动设备的了解和掌握,可以更好地实现物联网应用的开发和设计。 ### 回答3: 蓝桥杯物联网设计与开发考试不会直接给出 OLED 和 Lora 驱动程序。然而,物联网设计与开发考试通常会涉及对各种传感器、通信模块以及外设的使用和集成,包括 OLED 和 Lora。对于 OLED 和 Lora 驱动程序的使用,考试题目可能要求考生自行编写或集成相应的驱动程序。 对于 OLED,考生可能会被要求了解 OLED 的工作原理和驱动方式,并实现相关功能,如显示文本、图像等。考试中可能会要求考生使用相应的开发平台和库来编写 OLED 驱动代码,并结合实际应用场景进行相应的功能实现和调试。 对于 Lora,考生可能会要求了解 Lora 的工作原理和通信协议,并实现与其他设备之间的远程通信。考试中可能会要求考生使用开发板和相应的 Lora 模块来实现通信功能,并结合具体场景对其进行应用和调试。 总之,蓝桥杯物联网设计与开发考试鼓励考生在实际应用中掌握和使用各种硬件驱动和通信模块。虽然不会直接给出 OLED 和 Lora 驱动程序,但通过考试的实践和学习,考生可以提升自己的硬件驱动和通信模块的能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值