蓝桥杯物联网竞赛_STM32L071_15_ADC/脉冲模块
创始人
2024-12-13 15:35:14
0

在这里插入图片描述

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   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); 

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

相关内容

热门资讯

终于发现!微信炸金花房卡哪里有... 微信游戏中心:炸金花房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信炸金花房...
玩家必备!微信里上玩炸金花购买... 微信游戏中心:炸金花房卡,添加微信【82606316】,进入游戏中心或相关小程序,搜索“微信炸金花房...
终于发现!微信群链接炸金花房卡... 微信游戏中心:炸金花房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信炸金花房...
一分钟了解“微信拼三张房卡怎么... 天酷大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来...
秒懂教程“炸金花房卡链接建立步... 先锋大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
终于发现!微信玩链接牛牛房卡,... 微信游戏中心:牛牛房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
玩家必备!微信炸金花购买房卡/... 微信游戏中心:炸金花房卡,添加微信【82606316】,进入游戏中心或相关小程序,搜索“微信炸金花房...
终于找到“炸金花房卡链接怎么买... 乐酷副厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:15984933许多玩家在游戏中会购买房卡来...
终于发现!微信里面拼三张房卡哪... 微信游戏中心:拼三张房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信拼三张房...
终于知道”新全游房卡充值“金花... 第二也可以在游戏内商城:在游戏界面中找到 “微信金花,斗牛链接房卡”“商城”选项,选择房卡的购买选项...
终于发现!微信群链接炸金花房卡... 微信游戏中心:炸金花房卡,添加微信【71319951】,进入游戏中心或相关小程序,搜索“微信炸金花房...
微信牛牛链接金花房卡/斗牛房间... 斗牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
玩家必备!炸金花链接房间卡从哪... 微信游戏中心:炸金花房卡,添加微信【82606316】,进入游戏中心或相关小程序,搜索“微信炸金花房...
终于知道”圣游获得房卡链接渠道... 第二也可以在游戏内商城:在游戏界面中找到 “微信金花,斗牛链接房卡”“商城”选项,选择房卡的购买选项...
终于发现!微信群拼三张房卡怎么... 微信游戏中心:拼三张房卡,添加微信【56001354】,进入游戏中心或相关小程序,搜索“微信拼三张房...
终于知道”新鸿运如何买房卡“人... 来教大家如何使用如何买房卡房卡充值 添加房卡批售商:微【113857775】复制到微信搜索、直接添加...
ia实测“牛牛房卡批发平台/九... 九酷大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:160470940许多玩家在游戏中会购买房卡...
玩家必备!微信里打炸金花房卡在... 微信游戏中心:炸金花房卡,添加微信【82606316】,进入游戏中心或相关小程序,搜索“微信炸金花房...
终于发现!微信群拼三张房卡到哪... 微信游戏中心:拼三张房卡,添加微信【66336574】,进入游戏中心或相关小程序,搜索“微信拼三张房...
金花房卡购买联系方式/在哪里买... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...