完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、使用CubeMx配置文件
1、创建文件,如图所示 2、配置LED灯,将引脚设为输出模式,如图所示 3、配置时钟 有关定时器的内容可以查看中文手册 定时器有一个时钟频率计算用于计数时间,假如时钟频率为8M,不进行分频处理,那么 定时器计数一次需要时间是1/8M s约等于0.1微秒。 定时器产生中断的时间T=计数周期数/(时钟频率/分频数) 例如:时钟频率是15M,实现每一秒产生一次定时器中断 分频数和计数周期可以自己设定(范围在65535~1) 15/15000*1000 :计数1000次就是一秒,一秒产生一次中断。 分频数:15000-1 计数周期:1000-1 -1:分频数和计数周期都是从0开始,硬件给我们自动加1 配置如图所示 从图上可以看出没有采用分频默认为16MHZ,这里将它2分频,如图所示 配置参数 4、配置文件 5、生成文件 二、修改代码 1、添加启动文件 2,看一下定时器的初始化,是否和配置的一样 3、主函数修改(添加开启中断函数) 延时函数要在.h文件中进行声明, 在HAL库文件中可以查看中断开启函数 4、time.c函数的修改 添加了一个LED灯的控制函数和一个重载回调函数 #include “tim.h” #include “gpio.h” TIM_HandleTypeDef htim1;int k = 0x1; void MX_TIM1_Init(void) { TIM_ClockConfigTypeDef sClockSourceConfig = {0}; TIM_MasterConfigTypeDef sMasterConfig = {0}; htim1.Instance = TIM1; htim1.Init.Prescaler = 8000-1; htim1.Init.CounterMode = TIM_COUNTERMODE_UP; htim1.Init.Period = 999; htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; htim1.Init.RepetitionCounter = 0; htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; if (HAL_TIM_Base_Init(&htim1) != HAL_OK) { Error_Handler(); } sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK) { Error_Handler(); } sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK) { Error_Handler(); } } //led处理函数,要在time.h中声明void LED_Key(int x) { if(x == 1) { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); } else { HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET); } } void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) { //取反,来获取不同的LED状态 k = ~k; LED_Key(k); } |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1874 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1658 浏览 1 评论
1143 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
759 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1720 浏览 2 评论
1963浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
789浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
611浏览 3评论
628浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
590浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 13:16 , Processed in 0.945302 second(s), Total 47, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号