【STM32+HAL库】 您所在的位置:网站首页 tim2-etr 【STM32+HAL库】

【STM32+HAL库】

2024-07-14 16:32| 来源: 网络整理| 查看: 265

硬件开发板:STM32G0B1RET6 软件平台:cubemax+keil+VScode 1 新建cubemax工程 1.1 配置系统时钟RCC

image

1.2 配置定时器

选择通用定时器TIM2,时钟源选择ETR2,对应的输入端口为PA0引脚,预分频系数为0,重装载值选择默认最大值,避免溢出 image

1.3 配置信号输出端口

选择PA1引脚作为信号输出端口,选择输出模式GPIO_Output,自定义标签为OUT_SIGN,其他设置默认即可 image

1.4 配置串口

image

并在keil中的魔术棒界面开启微库 image

2 代码 2.1 printf重定向

在usart.h引用头文件和函数声明

#include "stdio.h" int fputc(int ch,FILE *f);

在usart.c中重定向

//重定向printf int fputc(int ch,FILE *f) { uint8_t temp[1]={ch}; HAL_UART_Transmit(&huart2,temp,1,2); return ch; } 2.2 main函数 int main(void) { /* USER CODE BEGIN 1 */ uint32_t count; /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_TIM2_Init(); MX_USART2_UART_Init(); /* USER CODE BEGIN 2 */ HAL_TIM_Base_Start(&htim2); /*开启定时器2,用于外部计数*/ printf("TIMER IS OK!\n"); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { HAL_GPIO_TogglePin(OUT_SIGN_GPIO_Port,OUT_SIGN_Pin); /*每隔500ms翻转一次LED*/ HAL_Delay(500); count=__HAL_TIM_GET_COUNTER(&htim2); /*读取计数值*/ printf("计数值:%d\n",count); /*输出结果*/ /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ } 3 实验现象

用杜邦线连接PA0和PA1引脚,观察串口输出结果 image

本文来自博客园,作者:晚风也温柔,转载请注明原文链接:https://www.cnblogs.com/zxr-blog/p/17967271



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有