怎么用stm32cubemx下载生成一个 10s的定时器

芯片:STM32F103C8T6
应用管脚:
输出:PA0、PA1
实现1ms定时功能,系统TIMx_CNT=8MHZ=HZ,设置TIMx_PSC=800-1,那么TIMx_ARR=(TIMx_CNT/TIMx_PSC)*定时器时间=()*0.001=10,TIMx_ARR=10-1。
开启NVIC中断配置
程序中增加回调函数
/* USER CODE BEGIN 4 */
Period elapsed callback in non blocking mode
htim : TIM handle
* @retval None
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
if(htim==&htim3)
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,(GPIO_PinState)!HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0));
/* USER CODE END 4 */
启动TIM3定时器
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start_IT(&htim3);
/* USER CODE END 2 */
本文已收录于以下专栏:
相关文章推荐
stm32CubeMX HAL库中延时的几种方式解析
HAL_Dalay()是毫秒级延时,为了使用微秒级延时最近学习了一下,总结如下,推荐使用最后一种方式。
* 本文件包括...
Ⅰ、写在前面相信很多人都知道STM32CubeMX这个工具,也是近年来开发STM32比较流行的一个工具。这个工具从两年前第一版到现在已经有多个版本了,功能也从简单越来越强大了。 STM32CubeMX...
Ⅰ、写在前面在开发STM32的时候,都需要对IO的模式进行配置(GPIO_InitStructure. GPIO_Mode = xxx)。但是,你们都知道各种模式的具体意义吗? 有的人问:IO口输出可...
有关软件的使用以及其它准备工作请参考:使用HAL库、STM32CubeMX和Keil 5开发入门教程(一):点亮一盏LED灯(NUCLEO-F411RE)一、API说明HAL库一共包含如下6个IO操作...
Ⅰ、写在前面在某些特定场合,需要精确的延时(us级),特别是底层驱动。如果使用软件延时,延时会随系统时钟改变及各种因素影响而改变。因此,就需要使用TIM精确延时。 阻塞式延时:从延时开始至结束,程序一...
Ⅰ、写在前面
学习本文之前可以查看我前面的文章:
STM32CubeMX介绍、下载与安装
主要讲述STM32CubeMX菜单及相关功能,简单讲述一下新建工程,后面结合实际例子讲述新建工程配置的具体...
Ⅰ、写在前面
学习本文之前可以查看我前面的文章:
STM32CubeMX介绍、下载与安装
STM32CubeMX使用方法及功能介绍
本文接着上一篇文章结合基本IO配置实例,讲述关于STM...
芯片:STM32F103C8T6
应用管脚:
输出:PA0、PA1
TIM2 CH2通道
实现PA1管脚50HZ(20ms)可调PWM输出,系统TIMx_CNT=8MHZ=8000
使用STM32CubeMX4.7进行STM32F407程序的开发,STM32CubeMX是个图形化的配置软件,可以节省一些时间。
STM32 CubeMX是一个STM32开发工具,使用图像化方法进行硬件配置并使用对应器件的HAL库函数生成兼容MDK4、MDK5、IAR等集成开发环境的工程。新手刚学习STM32时最好不要使用这个工...
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)STM32时钟分配及其解释-STM32cubeMX时钟设置
用时钟源来产生时钟!
在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。①、HSI是高速内部时钟,RC振荡器,频率为8MHz。
②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接
外部时钟源,频率范围为4MHz~16MHz。
③、LSI是低速内部时钟,RC振荡器,频率为40kHz。
④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。
⑤、PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、
HSE或者HSE/2。倍频可选择为2~16倍,但是其输出频率最
大不得超过72MHz。
其中40kHz的LSI(低速内部时钟)供独立看门狗IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。另外,实时时钟RTC的时钟源还可以选
择LSE(低速外部时钟),或者是HSE(高速外部时钟)的128分频。RTC的时钟源通过RTCSEL[1:0]来选择。
STM32中有一个全速功能的USB模块,其串行接口引擎需要一个频率为48MHz的时钟源。该时钟源只能从PLL输出端获取,可以选择为1.5分频或者
1分频,也就是,当需要使用USB模块时,PLL必须使能,并且时钟频率配置为48MHz或72MHz。()
另外,STM32还可以选择一个时钟信号输出到MCO脚(PA8)上,可以选择为PLL输出的2分频、HSI、HSE、或者系统时钟。
系统时钟SYSCLK最大频率为72MHz,它是供STM32中绝大部分部件工作的时钟源。系统时钟可由PLL、HSI或者HSE提供输出,并且它通过AHB分频器分频后送给各模块使用,AHB分频器可选择1、2、4、8、16、64、128、256、512分频。其中AHB分频器输出的时钟送给5大模块使用:①、送给AHB总线、内核、内存和DMA使用的HCLK时钟。
②、分频后送给STM32芯片的系统定时器时钟(Systick=Sysclk/8=9Mhz)
③、直接送给Cortex的自由运行时钟(free
running clock)FCLK。【ARMJISHU注:FCLK&为处理器的自由振荡的处理器时钟,用来采样中断和为调试模块计时。在处理器休眠时,通过FCLK&保证可以采样到中断和跟踪休眠事件。
Cortex-M3内核的“自由运行时钟(free running clock)”FCLK。“自由”表现在它不来自系统时钟HCLK,因此在系统时钟停止时FCLK&也继续运行。FCLK和HCLK
互相同步。FCLK&是一个自由振荡的HCLK。FCLK&和HCLK
应该互相平衡,保证进入Cortex-M3 时的延迟相同。】④、送给APB1分频器。APB1分频器可选择1、2、4、8、16分频,其输出一路供APB1外设使用(PCLK1,最大频率36MHz),另一路送给定时器(Timer)2、3、4倍频器使用。该倍频器可选择1或者2倍频,时钟输出供定时器2、3、4使用。
⑤、送给APB2分频器。APB2分频器可选择1、2、4、8、16分频,
其输出一路供APB2外设使用(PCLK2,最大频率72MHz),另一路送给定时器(Timer)1倍频器使用。该倍频器可选择1或者2倍频,时钟输出
供定时器1使用。另外,APB2分频器还有一路输出供ADC分频器使用,分频后送给ADC模块使用。ADC分频器可选择为2、4、6、8分频。
以上提到3种时钟Fclk、Hclk和Pclk,简单解释如下:Fclk为供给CPU内核的时钟信号,我们所说的cpu主频为XXXXMHz,就是指的这个时钟信号,相应的,1/Fclk即为cpu时钟周期;Hclk为优秀的高性能总线(AHB
bus peripherals)供给时钟信号(AHB为advanced high-performance
bus);HCLK
:AHB总线时钟,由系统时钟SYSCLK 分频得到,一般不分频,等于系统时钟,HCLK是高速外设时钟,是给外部设备的,比如内存,flash。Pclk为优秀的高性能外设总线(APB
bus peripherals)供给时钟信号(其中APB为advanced peripherals bus)。
在以上的时钟输出中,有很多是带使能控制的,例如AHB总线时钟、内核时钟、各种APB1外设、APB2外设等等。当需要使用某模块时,记得一定要先使能对应的时钟。
需要注意的是定时器的倍频器,当APB的分频为1时,它的倍频值为1,否则它的倍频值就为2。
连接在APB1(低速外设)上的设备有:电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看门狗、Timer2、Timer3、Timer4。
注意:USB模块虽然需要一个单独的48MHz时钟信号,但它应该不是供USB模块工作的时钟,而只是提供给串行接口引擎(SIE)使用的时钟。USB模块工作的时钟应该是由APB1提供的。
连接在APB2(高速外设)上的设备有:UART1、SPI1、Timer1、
ADC1、ADC2、所有普通IO口(PA~PE)、第二功能IO口。
[caption id="attachment_2541" align="alignnone" width="516"
caption="STM32的HCLK与FCLK关系图"][/caption]
下图是STM32用户手册中的时钟系统结构图(位于《STM32F103CDE_DS_CH_V5.pdf》的第14页,或者《STM32F10XXX参考手册_CN.pdf》的第47页),通过该图可以从
[caption id="attachment_2542" align="alignnone" width="847"
caption="STM32的时钟系统结构图"]
总体上掌握STM32的时钟系统。
已投稿到:请输入正确的邮箱
已有帐号请点击
帐号创建成功!
我们刚刚给你发送了一封验证邮件
请在48小时内查收邮件,并按照提示验证邮箱
感谢你对微口网的信任与支持
如果你没有收到邮件,请留意垃圾箱 或 重新发送
你输入的邮箱还未注册
还没有帐号请点击
你输入的邮箱还未注册
又想起来了?
邮件发送成功!
我们刚刚给你发送了一封邮件
请在5分钟内查收邮件,并按照提示重置密码
感谢你对微口网的信任与支持
如果你没有收到邮件,请留意垃圾箱 或 重新发送
对不起,你的帐号尚未验证
如果你没有收到邮件,请留意垃圾箱 或
意见与建议
请留下您的联系方式
* 留下您正确的联系方式,以便工作人员尽快与你取得联系stm32cube--通用定时器--产生pwm波
时间: 13:41:54
&&&& 阅读:48
&&&& 评论:
&&&& 收藏:0
标签:看了通用定时器的资料,发现内容挺多,挺难看懂,现在还是先掌握使用方法,以后再多看几遍吧。
③生成mdk工程后,在main.c的while(1)前面加上HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);就可以产生pwm波了。
通过一些实验可知,32cube配置好中断生成工程以后,程序中已经将中断相关的参数和准备工作都做好了,但我们要进入中断还必须手动添加中断的启动函数。标签:
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!}

我要回帖

更多关于 stm32cubemx spi 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信