STM32小项目总结2:(内含:1.对射式红外传感器计次+2.旋转编码器计次+3.定时器定时中断+4.定时器外部中断+5.笔记)

简介: STM32小项目总结2:(内含:1.对射式红外传感器计次+2.旋转编码器计次+3.定时器定时中断+4.定时器外部中断+5.笔记)

1.对射式红外传感器计次



推荐封装为CountSensor。推荐使用的是PB14引脚。使用GPIO_Mode_IPU。


思路如下:


1.开启GPIOB和AFIO的RCC(RCC_APB2Per.....)+2.初始化GPIO(使用库函数GPIO_Init(参数选择GPIO_Mode_IPU))+3.配置AFIO的通道(使用库函数GPIO_EXTIlineConfig(参数选择14引脚对应的14通道))+4.配置EXTI(EXTI_Init(参数Mode=Mode_Interrupt;_line=_line_14;_LintCmd=ENABLE;_Trigger=_Falling))+5.配置NVIC(NVIC_Init(参数_SuvPrior是抢占优先级,_Preemption是响应优先级,此处随意配置+参数通道选择填写为EXTI15_10_IRQn)+NVIC_PriorityGroupConfig(参数选择_2))+6.自定义参数来确定15_10中具体的14通道(推荐自定义函数void EXTI15_10_IRQHandler,里面执行的逻辑是使用查看标志位函数是否被置EXTI_GetITStatus()==SET和读某一位的函数GPIO_ReadInputDataBit()和清除标志位的EXTI_ClearITPendingBit())


补充:库函数如下:EXTI_GetFlagStatus()   查看标志位


                              EXTI_ClearFlag()            清除标志位


                            EXTI_GetITStatus()          中断中查看标志位


                           EXTI_ClearITPendingBit     中断中清除标志位


2.旋转编码器计次:


推荐封装函数为Encoder,初始化环节与对射式红外传感器基本相同。只有如下一点点变化:


初始化GPIO时,使用两个分别为GPIO_PIN_1和GPIO_PIN_0(可自由调整)


选择AFIO的通道时,选择两个通道,分别是GPIO_PinSouce0和GPIO_PinSouce1。


自定义通道函数时,需要定义两个,分别是void EXTI_IRQn0和void EXTI_IRQn1。


自定义函数思路与对射式红外传感器基本相同。先使用EXTI_GetFlagStatus查看标志位是否被置,在使用GPIO_ReadInputDataBit判断是否为1,满足条件就自增1,达到技术效果。


3.定时器定时中断:


推荐封装为Tim


思路:


1.开启RCC的Tim2时钟(在GPIOB上)+2.选择内部时基单元(Tim_InternalClockConfig+)3.初始化内部时钟(Tim_TIMEBaseInit)+4.中断输出控制(Tim_ITConFig(IT_选择_IT_UpData)+TIM_ClearFlag())+5.选择外部通道(NVIC_PriorityGroupConfig(选择_2))+6.初始化NVIC(NVIC_Init())+7.开启定时器(Tim_Cmd)+8.自定义函数选择具体通道(推荐使用Tim2_IRQnHandler,思路基本一致,不再赘述)


4.定时器外部中断:


与定时器定时中断基本相同,此处只写不同的部分,如下:


因为是外部中断,所以需要接外部中断源,如传感器接PB2,所以两个RCC函数,分别是TIM3和GPIOB。


在第二步时,此处选择外部时基单元,使用TIM_ETRClockMode2Config(第二个参数选择_GPSC_OFF不分配,第三个参数Polarity选_NonInvented不反向上升沿有效,第四个参数滤波器需要在0x00~0x0f之间,不使用选择0)


在第三步时,配置时基单元,更改自动重装和预分频器大小分别为10-1和1-1


其他地方基本不变,不再赘述


5.笔记如下:


98e9c3e36420477895fa4fdfdfe0e6be.jpg


相关文章
|
4月前
|
传感器 数据采集 算法
【免费开源】基于 STM32F4 的四轴飞行器设计与实现——从零开始到成功起飞(项目源码打包分享)
四轴飞行器作为一种低空、低成本的遥感平台,已经在多个领域展现出广泛的应用潜力。相比其他类型的飞行器,它在硬件上结构紧凑、安装方便,但在软件层面却充满挑战——从传感器数据融合到姿态解算,再到快速且稳定的控制算法,每一环节都需要精心设计,也正因此让四轴飞行器更具技术魅力。
460 74
|
4月前
|
传感器 机器人 物联网
【免费开源】基于STM32的蓝牙小车/智能小车项目详解(附源码)
通过本项目,你可以系统掌握STM32外设控制、蓝牙通信、电机驱动和传感器数据处理技术,实现一辆可远程控制并具备避障功能的智能小车。该项目具有高度可扩展性,后续可增加循迹、自动寻路、摄像头等高级功能。
891 42
【免费开源】基于STM32的蓝牙小车/智能小车项目详解(附源码)
|
4月前
|
存储 编解码 开发者
基于STM32和OLED的小恐龙游戏项目设计与实现【免费开源】
小恐龙游戏最初是作为浏览器离线小游戏而广为人知,其简单的操作与生动的画面使其深受用户喜爱。本项目将经典的小恐龙跳跃游戏移植到嵌入式平台上,使用STM32微控制器作为核心控制器,OLED屏幕进行显示,搭配按键或触摸实现用户交互。通过本项目,既可以体验游戏开发在嵌入式系统上的实现方式,又能掌握STM32 GPIO、定时器、OLED驱动、按键扫描及简单动画实现技术。
基于STM32和OLED的小恐龙游戏项目设计与实现【免费开源】
|
4月前
|
传感器 数据采集 物联网
基于STM32和FreeRTOS的智能手环项目设计与实现【免费开源】
随着可穿戴设备的普及,智能手环逐渐成为健康管理、运动监测和生活便捷的重要工具。本项目旨在设计一款基于STM32微控制器和FreeRTOS实时操作系统的智能手环,具备心率监测、运动计步、睡眠分析以及蓝牙通信功能。通过FreeRTOS实现多任务调度,提高系统响应效率和资源利用率,同时保证低功耗设计,延长手环续航。
基于STM32和FreeRTOS的智能手环项目设计与实现【免费开源】
|
10月前
|
存储 安全 数据安全/隐私保护
STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建
本文介绍了基于STM32的Customer BootLoader刷新项目的第一部分:使用STM32CubeMX搭建UART串口通信工程。项目采用正点原子探索者v2开发板,通过USB串口与上位机通信,实现固件刷新功能。主要内容包括: 1. 硬件原理图介绍:详细描述了开发板的串口连接方式及电路图。 2. STM32CubeMX工程搭建:从创建新工程、配置系统时钟、USART串口设置到生成代码,一步步详细说明。 3. 代码编写:展示了如何使用HAL库实现串口接收和发送数据,并提供了main.c的完整代码。 4. 工程下载和调试:编译并下载工程到开发板,通过串口调试助手验证通信功能。
STM32 Customer BootLoader 刷新项目 (一) STM32CubeMX UART串口通信工程搭建
|
10月前
|
芯片 内存技术
STM32 Customer BootLoader 刷新项目 (二) 方案介绍
本项目设计了一款基于STM32的二级BootLoader,旨在为客户自定义启动过程提供软件更新和操作后门。BootLoader架构分为三层:ST自带Boot(SB)、客户定制化Boot(CB)和应用层(APP)。CB通过USART与MCU通信,支持多种指令如版本查询、擦除扇区、写入数据等,实现灵活的软件管理和更新功能。Flash空间分配为Sector 0-1用于CB,Sector 2-11用于APP。整个方案详细介绍了内存布局、跳转逻辑及支持的指令集,确保系统稳定运行并支持未来的扩展需求。
 STM32 Customer BootLoader 刷新项目 (二) 方案介绍
|
传感器 数据安全/隐私保护 数据格式
STM32CubeMX DHT11温湿度传感器
STM32CubeMX DHT11温湿度传感器
1455 11
STM32CubeMX EC11旋转编码器驱动
STM32CubeMX EC11旋转编码器驱动
1452 10
|
传感器 数据采集 人工智能
【STM32+k210项目】基于AI技术智能语音台灯的设计(完整工程资料源码)
【STM32+k210项目】基于AI技术智能语音台灯的设计(完整工程资料源码)
1304 2
|
存储 算法 测试技术
【STM32项目】基于Stm32c8t6-镭射激光打印机的设计(完整工程资料源码)(二)
【STM32项目】基于Stm32c8t6-镭射激光打印机的设计(完整工程资料源码)(二)
489 0

热门文章

最新文章