彩票网站开发制作模版,c2c是指什么,网站是什么字体,wordpress调用添加登陆页面按钮前言
基于RT-Thread的STM32开发#xff0c;配置使用定时器实现输入捕获。 比如配置特定通道捕获上升沿#xff0c;该通道对应的引脚有上升沿信号输入#xff0c;则触发捕获中断。
一、新建工程 二、工程配置
1、打开CubeMX 进行工程配置 2、时钟使用外部高速晶振 3、配置…前言
基于RT-Thread的STM32开发配置使用定时器实现输入捕获。 比如配置特定通道捕获上升沿该通道对应的引脚有上升沿信号输入则触发捕获中断。
一、新建工程 二、工程配置
1、打开CubeMX 进行工程配置 2、时钟使用外部高速晶振 3、配置下载口 4、配置时钟树 5、打开串口一调试输出 6、配置定时器三打算用定时器三的通道一做输入捕获。 7、生成.c和.h文件 8、生成代码 三、代码编写
1、先编译一下工程出现如下报错 2、修改芯片支持包版本 3、将0.2.3降版本为0.2.2 4、确认切换 5、点击确定去下载资源 6、下载0.2.2版本 7、下载完成后再进行切换 8、切换完成后再进行编译无报错无警告 9、使能定时器模块 10、打开定时器驱动程序 11、找到CubeMX生成的 MX_TIM3_Init()进入进去 12、长这样 13、找到这个函数HAL_TIM_Base_MspInit 14、把它放到MX_TIM3_Init()定时器三初始化函数的这个位置 15、在HAL_TIM_Base_MspInit这个函数里写上开启定时器三的中断。 16、最后再在定时器三的初始化函数里写上开启定时器三通道一的输入捕获。 17、回到主函数在函数开始时进行定时器三的初始化编译发现报错说函数未定义 18、找到该函数将前面的static关键字去掉 19、前面的声明这也要去掉 20、再编译无报错无警告 21、再看看定时器三的初始化函数这里是输入捕获的触发边沿可以根据需要进行修改 22、在主函数这里写上输入捕获中断函数 23、打开CubeMX查看确认一下TIM3通道一的引脚号我这里是PA6也就是说当PA6引脚捕获到上升沿信号时就会进入捕获中断。 24、进入HAL_TIM_Base_MspInit()函数配置捕获引脚为下拉输入。 25、board.h里要打开TIM3 26、再配置一下时钟RTT默认使用的是内部时钟找到CubeMX生成的SystemClock_Config()时钟配置函数将其复制到drv.clk.c里面来 27、然后在时钟初始化这里做一个替换把CubeMX生成的时钟配置函数替换进去把原来的注释掉 28、在主函数中写入如下代码测试找到板子上的PA6引脚我使用的是PA6将其接到板子上的3.3V口看看是否能捕获上升沿进入中断由串口打印查看。
/** Copyright (c) 2006-2024, RT-Thread Development Team** SPDX-License-Identifier: Apache-2.0** Change Logs:* Date Author Notes* 2024-10-15 RT-Thread first version*/#include rtthread.h
#include rtdevice.h
#include board.h/* system io */
#define SYS_LED GET_PIN(A, 15)extern TIM_HandleTypeDef htim3;
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
{if(htim-Instance htim3.Instance){switch(htim-Channel){case HAL_TIM_ACTIVE_CHANNEL_1:rt_kprintf(TIM3_IC_TRICK!!\r\n);break;default:break;}}
}static void SystemLedRun(void)
{static uint8_t l_ucmode 0;if (l_ucmode 0){rt_pin_write(SYS_LED, PIN_HIGH);l_ucmode 1;}else if (l_ucmode 1){rt_pin_write(SYS_LED, PIN_LOW);l_ucmode 0;}
}
int main(void)
{rt_pin_mode(SYS_LED, PIN_MODE_OUTPUT);rt_pin_write(SYS_LED, PIN_HIGH);MX_TIM3_Init(htim3);while (1){SystemLedRun();rt_thread_mdelay(500);}return RT_EOK;
}
29、最后我把PA6脚触到3.3V电则会触发捕获中断