STM32F407ZGT6——实验9-4 通用定时器脉冲计数实验

news2024/12/30 2:12:50

一、配置路线

二、问题及反思

配置的时候误以为需要先把【输入捕获配置】了再去配置【从模式】,后面验证了这样配置没办法产生预期的效果。

代码如下:void gtim_timx_cnt_chy_init(uint16_t psc, uint16_t arr)

void gtim_timx_cnt_chy_init(uint16_t psc, uint16_t arr)

{

    /* TIM初始化 */

    gtim_timx_cnt_chy_handle.Instance = TIM5;

    gtim_timx_cnt_chy_handle.Init.Prescaler = psc;

    gtim_timx_cnt_chy_handle.Init.Period = arr;

    gtim_timx_cnt_chy_handle.Init.CounterMode = TIM_COUNTERMODE_UP;

    HAL_TIM_IC_Init(&gtim_timx_cnt_chy_handle);

    

    /* GPIO初始化,开启时钟 */

    __HAL_RCC_GPIOA_CLK_ENABLE();

    __HAL_RCC_TIM5_CLK_ENABLE();

    

    GPIO_InitTypeDef gpio_init_struct;

    gpio_init_struct.Pin = GPIO_PIN_0;                       /* LED0引脚 */

    gpio_init_struct.Mode = GPIO_MODE_AF_PP;                /* 推挽输出 */

    gpio_init_struct.Pull = GPIO_PULLUP;                    /* 上拉 */

    gpio_init_struct.Speed = GPIO_SPEED_FREQ_HIGH;          /* 高速 */

    gpio_init_struct.Alternate = GPIO_AF2_TIM5;

    HAL_GPIO_Init(GPIOA, &gpio_init_struct);               /* 初始化LED0引脚 */

    

//    /* 输入捕获配置 */

//    TIM_IC_InitTypeDef timx_chy_ic_handle = {0};

//    timx_chy_ic_handle.ICPolarity = TIM_ICPOLARITY_RISING;

//    timx_chy_ic_handle.ICSelection = TIM_ICSELECTION_DIRECTTI;

//    timx_chy_ic_handle.ICPrescaler = TIM_ICPSC_DIV1;

//    timx_chy_ic_handle.ICFilter = 0;

//    HAL_TIM_IC_ConfigChannel(&gtim_timx_cnt_chy_handle,&timx_chy_ic_handle, TIM_CHANNEL_1);

//    HAL_TIM_IC_Start(&gtim_timx_cnt_chy_handle, TIM_CHANNEL_1);                 /* 开启捕获功能 */

    

    /* 从模式初始化 */

    TIM_SlaveConfigTypeDef timx_chy_slave_handle = {0};

    timx_chy_slave_handle.SlaveMode = TIM_SLAVEMODE_EXTERNAL1;

    timx_chy_slave_handle.InputTrigger = TIM_TS_TI1FP1;

    timx_chy_slave_handle.TriggerPolarity = TIM_TRIGGERPOLARITY_RISING;

    timx_chy_slave_handle.TriggerPrescaler = TIM_TRIGGERPRESCALER_DIV1;

    timx_chy_slave_handle.TriggerFilter = 0;

    HAL_TIM_SlaveConfigSynchro(&gtim_timx_cnt_chy_handle,&timx_chy_slave_handle);

    

    /* 使能定时器更新中断,配置定时器中断优先级,开启捕获功能 */

    HAL_NVIC_SetPriority(TIM5_IRQn, 1, 3);

    HAL_NVIC_EnableIRQ(TIM5_IRQn);

    __HAL_TIM_ENABLE_IT(&gtim_timx_cnt_chy_handle, TIM_IT_UPDATE);            /* 使能更新中断 */

    HAL_TIM_IC_Start(&gtim_timx_cnt_chy_handle, TIM_CHANNEL_1);               /* 开启捕获功能 */

}
//    /* 输入捕获配置 */

//    TIM_IC_InitTypeDef timx_chy_ic_handle = {0};

//    timx_chy_ic_handle.ICPolarity = TIM_ICPOLARITY_RISING;

//    timx_chy_ic_handle.ICSelection = TIM_ICSELECTION_DIRECTTI;

//    timx_chy_ic_handle.ICPrescaler = TIM_ICPSC_DIV1;

//    timx_chy_ic_handle.ICFilter = 0;

//    HAL_TIM_IC_ConfigChannel(&gtim_timx_cnt_chy_handle,&timx_chy_ic_handle, TIM_CHANNEL_1);

//    HAL_TIM_IC_Start(&gtim_timx_cnt_chy_handle, TIM_CHANNEL_1);                 /* 开启捕获功能 */

配置方面的代码以及寄存器的理解已经有一定的程度,但是在main.c编写代码逻辑时还是不够清晰,经常犯一些错误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1421920.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全新魅思V20正规视频影视系统源码/APP+H5视频影视源码

全新魅思V20正规视频影视系统源码,APPH5视频影视源码。会员花费三千购入的,具体搭建教程放压缩包了! 有兴趣的下载自行研究吧,搭建一共要用到3个域名,可以拿二级域名搭建。

企业级大模型的护城河:RAG + 微调

围绕LLM的炒作是前所未有的,但这是有道理的,生成式 AI 有潜力改变我们所知道的社会。 在很多方面,LLM将使数据工程师变得更有价值——这令人兴奋! 不过,向老板展示数据发现工具或文本到 SQL 生成器的炫酷演示是一回事…

解密数据清洗,SQL中的数据分析

大家好,数据库表中的数据经常会很杂乱。数据可能包含缺失值、重复记录、异常值、不一致的数据输入等,在使用SQL进行分析之前清洗数据是非常重要的。 当学习SQL时,可以随意地创建数据库表,更改它们,根据需要更新和删除…

云原生 k8s 可能使用到的端口整理【不定期更新】

k8s 因为涉及到的组件太多了,所以端口有很多,这里整理了日常所接触的接口,后续有新的再更新。 如果是通过公网 IP 进行安装的时候需要根据实际情况有选择的进行放开;一般只有云厂商会提供公网 IP 访问,自建的话不建议 …

GrayLog踩坑历险记

背景 GrayLog作为ELK的替代产品,是新生代的日志采集框架。在一个采集节点日志的需求中,因为节点很多,产生的日志也很多,因此尝试了使用GrayLog进行日志的采集。下面记录一下使用GrayLog中遇到的坑和解决方案。 一、部署与启动 …

基于YOLOv8的船舶目标检测系统(Python源码+Pyqt6界面+数据集)

博主简介 AI小怪兽,YOLO骨灰级玩家,1)YOLOv5、v7、v8优化创新,轻松涨点和模型轻量化;2)目标检测、语义分割、OCR、分类等技术孵化,赋能智能制造,工业项目落地经验丰富; …

鸿蒙南向开发——GN快速入门指南

运行GN(Generate Ninja) 运行gn,你只需从命令行运行gn,对于大型项目,GN是与源码一起的。 对于Chromium和基于Chromium的项目,有一个在depot_tools中的脚本,它需要加入到你的PATH环境变量中。该脚本将在包含当前目录的…

空间数据分析和空间统计工具库PySAL入门

空间数据分析是指利用地理信息系统(GIS)技术和空间统计学等方法,对空间数据进行处理、分析和可视化,以揭示数据之间的空间关系和趋势性,为决策者提供有效的空间决策支持。空间数据分析已经被广泛运用在城市规划、交通管理、环境保护、农业种植…

主从数据库MySQL服务重启步骤与注意事项

主从数据库MySQL服务重启步骤与注意事项 实验环境: 172.20.26.34 (主应用服务器) 172.20.26.26 (备应用服务器) 172.20.26.37 (主库服务器) 172.20.26.38 (从库服务器&…

Spring Boot 中使用 Spring MVC基础

Spring MVC基础 一、控制器 controller1.定制控制器的方法(1)接收请求(2)接收请求参数(3)返回值 二、模型 Modle三、视图 View四、总结 Spring MVC 是非常著名的 Web 应用框架,现在的大多数 Web…

无需 Root 卸载手机预装软件,精简过的老年机又行了

基础准备 准备目标手机、USB 数据线、以及一台电脑。手机 USB 连接电脑,开发者选项中打开 USB 调试。(开发者选项默认隐藏,需要在关于手机中多次点击版本号才能调出)。 安装手机驱动,下载安装 ADB 工具包。 开始操作…

Excel得到JSON串

很多时候业务都需要做一种从Excel读取或者导入数据的功能,这在cs程序比较简单,在BS程序上如果封装不好的话那么写起来还是很费劲的,这次封装Excel读取操作。 先看使用 对,你没有看错,就是这么简单。 封装 基础设计…

TensorFlow2实战-系列教程11:RNN文本分类3

🧡💛💚TensorFlow2实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 6、构建训练数据 所有的输入样本必须都是相同shape(文本长度,…

Prometheus基于pod部署

1、kube-api的自动发现:Prometheus的容器化部署(生产中都是pod部署) 2、部署export (1)创建目录 (2)创建命名空间 (3)部署node-export ①9100端口被占用,停…

useEffect的第二个参数

目录 1、第一个参数: 2、第二个参数: 2.1 不传值:无限循环 2.2 空数组作为依赖:执行一次 2.3 基本类型作为依赖:无限循环 2.4 引用类型 2.4.1 数组作为依赖:无限循环 2.4.2 函数作为依赖&#…

添加了gateway之后远程调用失败

前端提示500,后端提示[400 ] during [GET] to [http://userservice/user/1] 原因是这个,因为在请求地址写了两个参数,实际上只传了一个参数 解决方案:加上(required false)并重启所有相关服务

Redis(十)SpringBoot集成Redis

文章目录 连接单机mvnYMLController.javaRedisConfig.java 连接集群YML问题复现 RedisTemplate方式 连接单机 mvn <!--Redis--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</art…

Qt应用开发(安卓篇)——调用ioctl、socket等C函数

一、前言 在 Qt for Android 中没办法像在嵌入式linux中一样直接使用 ioctl 等底层函数&#xff0c;这是因为因为 Android 平台的安全性和权限限制。 在 Android 中&#xff0c;访问设备硬件和系统资源需要特定的权限&#xff0c;并且需要通过 Android 系统提供的 API 来进行。…

Java链表(2)

&#x1f435;本篇文章将对双向链表进行讲解&#xff0c;模拟实现双向链表的常用方法 一、什么是双向链表 双向链表在指针域上相较于单链表&#xff0c;每一个节点多了一个指向前驱节点的引用prev以及多了指向最后一个节点的引用last&#xff1a; 二、双向链表的模拟实现 首先…

深度学习:机器智能的革命性突破与未来挑战

深度学习&#xff1a;机器智能的革命性突破与未来挑战 深度学习是人工智能领域的一个重要分支&#xff0c;它利用神经网络模拟人类大脑的学习过程&#xff0c;通过大量数据训练模型&#xff0c;使其能够自动提取特征、识别模式、进行分类和预测等任务。近年来&#xff0c;深度学…