基于cubeMX的STM32的定时器使用

52 篇文章 0 订阅
49 篇文章 1 订阅

1、设置cubeMX

这里使用STM32F103RCT6芯片,以定时器2为例,时钟源选择内部时钟

参数设置,预分频7200,定时器周期10000,则表示定时1秒钟

打开定时器2通用中断

其他设置不用修改。时钟页面配置如下

最后生成代码。

2、在工程文件tim.c中,添加定时器中断回调函数,做1秒时间到后的任务处理,这里以在串口屏显示计时为例:

/* USER CODE BEGIN 1 */
uint16_t countdown=0;
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
 {

		// 这个回调函数 是共用的,因此需要先判断,是不是定时器2
    if(htim->Instance == htim2.Instance)
	{
		countdown++;//计时加1,并在显示屏上显示秒数
		SetTxData_toLCD(0x11,0x50, countdown/256,countdown%256);//写串口屏指令数组,变量地址0x1100,写入串口屏倒计时秒数
	  UserUart1Send( tempbuff,sizeof(tempbuff));//串口1发送指令存放的数组,控制数据变量0x1100处显示倒计时秒数
	}
}

STM32的1S #include "stm32f10x_it.h" /** @addtogroup STM32F10x_StdPeriph_Template * @{ */ /* Private typedef -----------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/ /* Private macro -------------------------------------------------------------*/ /* Private variables ---------------------------------------------------------*/ extern u32 SystickCounter; extern u8 KeySwitch_Press; extern u8 KeyAdjust_Press; #define TRUE 1 #define FALSE 0 /* Private function prototypes -----------------------------------------------*/ /* Private functions ---------------------------------------------------------*/ /******************************************************************************/ /* Cortex-M3 Processor Exceptions Handlers */ /******************************************************************************/ /** * @brief This function handles NMI exception. * @param None * @retval None */ void NMI_Handler(void) { } /** * @brief This function handles Hard Fault exception. * @param None * @retval None */ void HardFault_Handler(void) { /* Go to infinite loop when Hard Fault exception occurs */ while (1) { } } /** * @brief This function handles Memory Manage exception. * @param None * @retval None */ void MemManage_Handler(void) { /* Go to infinite loop when Memory Manage exception occurs */ while (1) { } } /** * @brief This function handles Bus Fault exception. * @param None * @retval None */ void BusFault_Handler(void) { /* Go to infinite loop when Bus Fault exception occurs */ while (1) { } } /** * @brief This function handles Usage Fault exception. * @param None * @retval None */ void UsageFault_Handler(void) { /* Go to infinite loop when Usage Fault exception occurs */ while (1) { } } /** * @brief This function handles SVCall exception. * @param None * @ret
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jacklood

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值