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

一、配置路线

二、问题及反思

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

代码如下: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编写代码逻辑时还是不够清晰,经常犯一些错误。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis 源码系列:MyBatis 解析配置文件、二级缓存、SQL

文章目录 解析全局配置文件二级缓存解析解析二级缓存缓存中的调用过程缓存中使用的设计模式 解析SQL 解析全局配置文件 启动流程分析 String resource "mybatis-config.xml"; //将XML配置文件构建为Configuration配置类 reader Resources.getResourceAsReader(re…

【3分钟开服】幻兽帕鲁服务器一键部署保姆教程

在帕鲁的世界,你可以选择与神奇的生物「帕鲁」一同享受悠闲的生活,也可以投身于与偷猎者进行生死搏斗的冒险。帕鲁可以进行战斗、繁殖、协助你做农活,也可以为你在工厂工作。你也可以将它们进行售卖,或肢解后食用。 引用自&#x…

脚本实现两台windows 机器间多个目录中文件同步到某个特定的目录里

脚本实现两台windows 机器间多个目录中文件同步到某个特定的目录里 要求:将172.20.26.74 中的test1、test2文件夹里的文件都同步到172.20.26.87机器上的t1文件夹里。 1、两台机器,关闭防火墙,能相互ping通,在172.20.26.87机器上将…

Windows编程入门-窗口控件-资源操作

window控件: 控件是常见的窗口上的交互元素例如:一个按钮,一个复选框,一个列表框等。 当控件的特定功能被触发后,会主动发送消息通知父窗口,父窗口可以通过发送消息给控件控制控件的行为。 控件的本质是一个…

Utreexo:优化Bitcoin UTXO集合的基于哈希的动态累加器

1. 引言 前序博客: Utreexo:比特币UTXO merkle tree proof以节约节点存储空间 MIT Digital Currency Initiative 的 Thaddeus Dryja 2019年论文 Utreexo: A dynamic hash-based accumulator optimized for the Bitcoin UTXO set。 开源代码实现见&…

Kafka 记录

推荐资源 官网http://kafka.apache.org/Githubhttps://github.com/apache/kafka书籍《深入理解Kafka 核心设计与实践原理》 Kafka 架构 Kafka使用ZooKeeper作为其分布式协调框架,其动态扩容是通过ZooKeeper来实现的。Kafka使用Zookeeper保存broker的元数据和消费者信…

使用流服务器m7s对接gb28181

优:sip品牌兼容性比较好,大华,海康都稳定可以,srs的5.0 sip品牌兼容性大华没反应,akstream-sip 大华也有问题,wvp也还可以 缺:目前最新的4.7.4版本,,sip协议用udp正常&a…

年底特殊时期外贸装柜多花点心思

如果可以,尽量不要在工厂快要放假的时候安排装柜了,一个是人手不够,一个是容易漏货,还有就是柜子不好定。 看到有人说自己客户收到货的时候比预期晚了两个星期,一直延误,已经比原来要计划开业的时间推迟&a…

mini-spring 实现应用上下文,自动识别、资源加载、扩展机制

我们不能让面向 Spring 本身开发的 DefaultListableBeanFactory 服务,直接给予用户使用 DefaultListableBeanFactory、XmlBeanDefinitionReader,是我们在目前 Spring 框架中对于服务功能测试的使用方式,它能很好的体现出 Spring 是如何对 xm…

Cocos creator 动作系统

动作系统简介 是用于控制物体运动的一套系统,完全依赖代码进行实现,动态调节节点的移动。 移动 cc.moveTo 移动到某个坐标(x,y) //1秒时间内,移动到0,0let action1 cc.moveTo(1,0,0)this.node.runAction(action1)c…

Walrus 实用教程|Walrus + Gitlab,打通CI/CD 自动化交付!

Walrus file 是 Walrus 0.5 版本推出的新功能,用户可以通过一个非常简洁的 YAML 描述应用或基础设施资源的部署配置,然后通过 Walrus CLI 执行 walrus apply或在 Walrus UI 上进行import,将 Walrus file 提交给 Walrus server,由 …

Qt简易的五子棋

五子棋是个简单的小游戏,尝试使用Qt将他做出来,学习时的练习demo。 成果展示 需求分析 五子棋:在棋盘上,黑棋先行,交替下棋,五子练成直线获取胜利。 实现过程 1.棋盘绘制:下棋的第一步肯定是绘制…

7000字详解Spring Boot项目集成RabbitMQ实战以及坑点分析

本文给大家介绍一下在 Spring Boot 项目中如何集成消息队列 RabbitMQ,包含对 RibbitMQ 的架构介绍、应用场景、坑点解析以及代码实战。 我将使用 waynboot-mall 项目作为代码讲解,项目地址:https://github.com/wayn111/waynboot-mall。本文大…

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

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

世界坐标系转换为平面地图坐标

将世界坐标系转换为平面地图坐标的方法通常涉及地图投影。地图投影是一种将地球(一个三维球体)上的点转换为平面(二维)地图上的点的方法。 这里介绍几种常见的地图投影方法: 墨卡托投影(Mercator Projection): 这是最常见的投影方式之一,尤其用于航海地图。它将经纬度…

3D数据转换器HOOPS Exchange如何获取模型的几何数据? 干货预警!

一、概述 前面讲解过模型在内存中的结构,现在回顾一下,当模型导入成功后,整个模型数据会以原生结构的 PRC 组装树形式存放到内存中。(申请 HOOPS Exchange 试用) PRC结构的主要类型包含四种,分别是…

Pipwork相关测试过程

pipework可以减轻docker实施过程中的工作量,在网上也找了几篇类似的文章,按照相应配置,结果并不相同 如下测试过程记录下: docker run -it --rm --name c1 busybox docker run -it --rm --name c2 busyboxpipework br1 c1 192…

数据结构:大顶堆、小顶堆

堆是其中一种非常重要且实用的数据结构。堆可以用于实现优先队列,进行堆排序,以及解决各种与查找和排序相关的问题。本文将深入探讨两种常见的堆结构:大顶堆和小顶堆,并通过 C 语言展示如何实现和使用它们。 一、定义 堆是一种完…

【代码随想录-链表】两两交换链表中的节点

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…