首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

达内python+人工智能就业班2023最新版野池水满连秋堤

MindSDK为MM32运用星斗处置器内核的系列微控制器,

达内python+人工智能就业班2023最新版

download:https://www.51xuebc.com/thread-583-1-1.html

完成了一组TIM样例工程,MindSDK中的TIM模块对应硬件定时器TIM外设。本文经过解说TIM模块的样例工程,引见TIM模块的功用和用法。关于TIM模块对应的驱动程序,以及TIM外设模块硬件的完成细节,可详细查阅MindSDK工程的源文件,以及MM32微控制器(例如MM32F5270)的用户手册。

样例工程

MindSDK中为TIM驱动设计的样例工程包括:

tim_basic

tim_one_time_run

tim_output_compare_pwm

tim_input_capture

tim_external_trigger_input

tim_slave_mode

tim_slave_mode_encoder

tim_comp_output_compare_pwm

其中,tim_basic、tim_one_time_run、tim_output_compare_pwm、tim_input_capture和tim_external_trigger_input 分别演示了定时器最典型的功用,包括定时、输出比拟、输入捕捉,以及对外部脉冲停止计数等。另外,还有一些不大典型,用在特殊应用场景的功用,例如,运用“从机”形式干预常规的定时器计数,经过硬件完成互补的PWM输出(常用于电机控制应用中控制驱动桥)。

tim_basic

tim_basic 描绘了运用TIM模块最根本的方式,周期定时器。在样例工程中,经过 TIM_Init() 函数,配置一个选定的TIM外设模块的计数引擎,为连续计数形式 TIM_PeriodMode_Continuous ,并指定计数周期为 APP_TIM_UPDATE_PERIOD 。然后,启用选定TIM外设模块对应的NVIC中缀。最后,经过调用 TIM_Start() 驱动函数,启动定时器开端计数。

每当定时器计数抵达预设的计数周期值后,计数值折返为0,重新开端计数。同时,TIM会触发NVIC中缀, tim\_basic 样例工程中为TIM中缀完成的效劳程序中,完成了经过串口发送字符 * 的操作。

最终程序运转时,能够在PC机上的串口通讯终端看到以指定周期输出的字符 * ,考证定时器中缀被周期触发。

tim_one_time_run

tim_one_time_run 相关于 tim_basic 样例工程完成周期触发定时器中缀效劳,完成了每次启动定时器后,仅触发一次中缀的用法。

其完成原理,是在 tim_basic 配置定时器周期运转的根底之上,修正初始化配置 .PeriodMode 的值为 TIM_PeriodMode_OneTimeRun。之后,每次经过 TIM_Start() 函数启动定时器后,定时器仅计数一个周期后,触发中缀,然后中止计数。

实践运转程序时,用户在串口调试终端中每次输入恣意字符,程序均会调用一次 TIM\_Start() 函数,延时指定计数周期后,在定时器中缀效劳程序中打印字符 * 到串口终端界面。

tim_output_compare_pwm

tim_output_compare_pwm 完成的是一个经过输出比拟功用产生PWM输出信号的样例工程。

其完成原理,是在 tim_basic 根底之上,额外经过驱动函数 TIM_EnableOutputCompare(),启动并配置给定通道 BOARD_TIM_CHANNEL 为输出比拟功用。其中,指定通道的配置属性 .PinPolarity 的值为 TIM_PinPolarity_Rising,.RefOutMode 值为 TIM\_OutputCompareRefOut_FallingEdgeOnMatch,设定同通道绑定的硬件引脚信号在计数初始的阶段为高电平,当计数值到达通道数据存放器中设定的匹配值时,输出降落沿信号,输出低电平。

实践运转程序时,用户经过 TIM_Init() 函数配置定时器的根本定时单元,对应的计数周期即为输出PWM信号波形的周期,启用输出比拟的指定通道绑定的引脚即为输出PWM信号的引脚,经过 TIM_PutChannelValue() 函数设定输出波形在整个周期降落沿的位置,进而调整PWM输出信号波形的占空比。通道引脚在每次定时器周期的开端输出为高电平,在周期内设定的匹配值的位置产生降落沿,转而输出低电平,再计数周期完毕折返为0时,恢复为高电平。如此循环往复,完成输出PWM信号波形。

tim_input_capture

tim_intput_capture 完成的是一个运用定时器为外部输入的触发信号记载时辰的样例工程。

其完成原理,是在 tim_basic 根底之上,额外经过驱动函数 TIM_EnableInputCapture(),启动并配置给定通道 BOARD_TIM\_CHANNEL 为输入捕获功用。其中,指定给定通道的捕获输入信号极性 .PinPolarity 的值为 TIM_PinPolarity_Falling,表示在该给定通道绑定的引脚上呈现降落沿信号时,触发捕获事情。此时,捕获计数器当前的计数值到给定通道的通道数据存放器中,这个值就能够作为该捕获事情的时辰记载。

实践运转程序时,用户经过 TIM_Init() 函数配置定时器的根本定时单元,此时定时器的计数周期,就是可能捕获时辰值的有效范围。然后在电路上运用一个按键接入到指定通道绑定的引脚上,模仿产生降落沿触发信号。当按下按键时,触发信号到来,触发程序中的通道事情中缀效劳程序,在其中能够经过 TIM_GetChannelValue() 函数读取本次输入捕获事情发作时的计数时辰。

tim_external_trigger_input

相关于 tim_basic 中,运用芯片内部的时钟源脉冲停止计数,tim_external_trigger_input 样例工程能够对用户指定引脚上的脉冲停止计数,计数的脉冲来自于芯片外部的信号源。

其完成原理,是在 tim_basic 根底上,额外经过驱动函数 TIM_EnableExtTriggerIn(),配置启用外部对外部输入的脉冲信号停止计数的功用,固定从TIM外设模块的 ETR 引脚捕获来自外部的脉冲信号。每次捕获到一个脉冲信号,同等于运用芯片内部时钟源的脉冲,计数器自增计数。此时,还能够基于这个新的时钟源,运用周期计数中缀等功用。

实践运转程序时,用户能够将一个按键接入到指定TIM外设模块的 ETR 引脚上,用手动按按键产生脉冲信号。在程序中指定定时器的计数周期 APP_TIM_UPDATE_PERIOD 值为2,意味着每输入两次脉冲,就会触发一次定时器周期中缀。

tim_slave_mode

tim_slave_mode 完成的是一个运用从机TIM从机形式的样例工程。实践上,这里的“从机”同附属关系的的“从”是没关系的,而是能够了解为更丰厚的可由用户控制的工作形式。

tim_slave_mode 工程,在 tim_basic 根底上,额外经过驱动函数 TIM_EnableSlaveMode(),配置了其中一种“从机”形式:运用 ETR 作为控制信号(降落沿)的引脚 TIM_SlaveIn_Alt7,当控制信号到来时,选择暂停计数 TIM_SlaveResp_Alt5。

实践运转程序时,用户能够将一个按键接入到指定TIM外设模块的 ETR 引脚上,用手动按按键产生电平控制信号。当按下按键时,控制定时器暂停计数,松开按键时,定时器恢复计数。正常计数到一整个周期时,会产生中缀。如此,当按下按键时,会影响定时器中缀的周期。

tim_slave_mode_encoder

tim_slave_mode_encoder 工程基于 tim_input_capture 工程,经过额外调用 TIM_EnableSlaveMode() 并传入一组特定的配置,启用了一种特殊的“从机”形式,从而完成了编码器的功用。

tim_comp_output_compare_pwm

tim_comp_output_compare_pwm 基于tim_output_compare_pwm 工程,经过额外的驱动函数 TIM_EnableCompOutput(),完成了PWM信号的互补输出,这意味着当运用正常的输出比拟通道输出PWM信号时,还开启了硬件设计的,运用对应的另一个通道,输出电平极性刚好相反的PWM信号。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/ODEl-gQ4Vj975_Wc4kJ2LaUA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券