完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
最近在使用正点原子的阿波罗开发板做 tiM14的PWM输出实验 要求输出30Hz的。对比手册,TIM14挂在APB1上,APB时钟为54MHz,可实际使用中发现TIM14的时钟源输出的是432MHz,查看代码,只有在系统时钟初始化时将PLL设为432MHz,代码如下:
GPIO_InitTypeDef GPIO_Initure; TIM_HandleTypeDef TIM14_Handle; TIM_OC_InitTypeDef TIM14_CH1Handle; __HAL_RCC_GPIOF_CLK_ENABLE(); __HAL_RCC_TIM14_CLK_ENABLE(); GPIO_Initure.Pin=GPIO_PIN_9; //PF9 ϽµÑØ´¥·¢£¬ÉÏÀ GPIO_Initure.Mode=GPIO_MODE_AF_PP; //¸´ÓÃÍÆÍì GPIO_Initure.Pull=GPIO_PULLUP; //ÉÏÀ GPIO_Initure.Alternate = GPIO_AF9_TIM14; HAL_GPIO_Init(GPIOF,&GPIO_Initure); //base sconfig TIM14_Handle.Instance = TIM14; TIM14_Handle.Init.Period = 100; TIM14_Handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4; TIM14_Handle.Init.Prescaler = (36000 - 1); TIM14_Handle.Init.CounterMode = TIM_COUNTERMODE_UP; TIM14_Handle.Init.RepetitionCounter = 0; //ÂíÉϸüÐÂARR HAL_TIM_Base_Init(&TIM14_Handle); //OC config TIM14_CH1Handle.OCMode=TIM_OCMODE_PWM1; TIM14_CH1Handle.Pulse = 50; TIM14_CH1Handle.OCPolarity=TIM_OCPOLARITY_HIGH; HAL_TIM_PWM_ConfigChannel(&TIM14_Handle,&TIM14_CH1Handle,TIM_CHANNEL_1); HAL_TIM_PWM_Start(&TIM14_Handle,TIM_CHANNEL_1); 432M/4/36000 = 3KHz 计数100 刚好30Hz 示波器测量也是30Hz |
|
相关推荐
17个回答
|
|
我没看错吧。F7能跑到400多Mhz?
|
|
|
|
楼主是否示波器地线断了测量出现误差?767主频无法跑到400MHZ,定时器则会更低的。432M如何得到的?
|
|
|
|
示波器肯定没问题,432MHz 我是根据定时器的配置以及示波器实际测量频率推导出来的 我也很奇怪
|
|
|
|
有网友说 TIM14_Handle.Init.ClockDivision = TIM_CLOCKDIVISION_DIV4;
这句时钟分频不是给时基单元用的,是这样么 我一直都是以为总线时钟/TIM_CLOCKDIVISION_DIVx/psc 就是定时器计数时钟 |
|
|
|
本帖最后由 wenyangzeng 于 2018-1-29 17:41 编辑 主频才216MHZ,哪来的432MHZ?而且示波器要显示432MHZ,也要很高带宽的示波器才够用。 STM32 Cubemx配置:主频216MHZ,APB1是108MHZ |
|
|
|
APB1总线被配置为54MHz, 当APB1分频数不为1时 TIM时钟要倍频 所以是108MHz
|
|
|
|
APB1总线被配置为54MHz, 当APB1分频数不为1时 TIM时钟要倍频 所以TIM时钟为108MHz |
|
|
|
那个432MHZ的配置能贴个图出来吗?
|
|
|
|
void Stm32_Clock_Init(u32 plln,u32 pllm,u32 pllp,u32 pllq) //入参是:432,25,2,9
{ HAL_StatusTypeDef ret = HAL_OK; RCC_OscInitTypeDef RCC_OscInitStructure; RCC_ClkInitTypeDef RCC_ClkInitStructure; __HAL_RCC_PWR_CLK_ENABLE(); __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); RCC_OscInitStructure.OscillatorType=RCC_OSCILLATORTYPE_HSE; RCC_OscInitStructure.HSEState=RCC_HSE_ON; RCC_OscInitStructure.PLL.PLLState=RCC_PLL_ON; RCC_OscInitStructure.PLL.PLLSource=RCC_PLLSOURCE_HSE; RCC_OscInitStructure.PLL.PLLM=pllm; RCC_OscInitStructure.PLL.PLLN=plln; RCC_OscInitStructure.PLL.PLLP=pllp; RCC_OscInitStructure.PLL.PLLQ=pllq; ret=HAL_RCC_OscConfig(&RCC_OscInitStructure); if(ret!=HAL_OK) while(1); ret=HAL_PWREx_EnableOverDrive(); if(ret!=HAL_OK) while(1); RCC_ClkInitStructure.ClockType=(RCC_CLOCKTYPE_SYSCLK|RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2); RCC_ClkInitStructure.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStructure.AHBCLKDivider=RCC_SYSCLK_DIV1; RCC_ClkInitStructure.APB1CLKDivider=RCC_HCLK_DIV4; RCC_ClkInitStructure.APB2CLKDivider=RCC_HCLK_DIV2; ret=HAL_RCC_ClockConfig(&RCC_ClkInitStructure,FLASH_LATENCY_7); if(ret!=HAL_OK) while(1); } 外部HSE 25MHz晶振,先25分频得到1MHz作为VCO的输入, 然后432倍频得到PLL时钟432MHz。 后面就是SysCLK = PLLCLK/2 = 216MHz AHB = 216MHz APB1 = 216/4 = 54MHz APB2 = 216/2 = 108M USB/SDIO CLK = PLLCLK/9 = 48MHz |
|
|
|
按照楼主的配置试一下,这个
RCC_OscInitStructure.PLL.PLLQ=pllq; pllq只能到2,CubeMX不接受 9 而且系统时钟频率是216MHZ而不是432MHZ,这个432只是PLLM倍频系数而已。 |
|
|
|
C:UserssoyoaDesktop微信截图_20180201160954.png
432MHz 是VCO的频率,手册上PLLQ范围为2-15顺便看了下HAL库里面的写法 也没有提到有2的限制,可能是cube的限制吧 |
|
|
|
为什么我配出来的time时钟是216M啊,怎么设置的。。。
|
|
|
|
本帖最后由 morphlings2014 于 2018-2-2 17:38 编辑
TIM14的时钟是挂在APB1的time clock上面的,如下图是216MHZ 如下是我配置的TIM14为1K,和示波器捕获的值是一样的。 工程 |
|
|
|
对呀,不是楼主说的432MHZ
|
|
|
|
楼主,根据手册这个芯片的最高主频是216MHZ,不排除楼主的超频行为。但是,根据论坛的多位大虾的测试,一般情况下,超频使用不会稳定达到432MHZ这么高。或者楼主没有仔细看说明书,对主频的理解有偏差。
|
|
|
|
duzh20016 发表于 2019-5-8 22:57 即使超频工作也达不到你说的主频432M,外设时钟频率经过我们的配置才产生出相应的PWM波的,但这个主频不一样的 |
|
|
|
这个你得去看下时钟树了,这样才能了解定时器的分频等操作
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
643 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
914 浏览 2 评论
2026 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1125 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1550 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 02:30 , Processed in 1.970395 second(s), Total 75, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号