【MCU实战经验】基于STM32F103C8T6的hart总线调试器设计
求教STM32F103进入STOP模式后用外部中断唤醒的问题
基于STM32F103RCT6的无源蜂鸣器音乐播放(生日快乐歌)
STM32F103c8t6有没有DAC 功能?
STM32F103x中文数据手册
新手求教,为何在我电脑上找不到STM32F1Xx.h文件
金龙107例程汇总(STM32F107)
万利STM32F107VC 原理图
STM32F103 ADC多通道检测必须要DMA吗?
【官方例程】STM32F107以太网官方例程
你还需要把stm32f10x.h里面的HSE_VALUE修改为16M
完成上述工作之后你的时基就是准确的72M,这样你的RTOS的时间就准了。
评分
查看全部评分
上述情况是我已经改了 #define HSE_VALUE ((uint32_t)16000000) /*!< Value of the External oscillator in Hz */
https://www.stmcu.org.cn/module/forum/thread-614091-1-1.html
评分
查看全部评分
不准就不准呗,带操作系统的软件定时都不准,大体上没问题就行了。要准的话,用硬件定时器中断方式。
上位机不是实时系统,在串口界面显示的时间误差本来就大。要想得到准确的时间,请用逻辑分析仪抓数据波形。
评分
查看全部评分
要比较准确的检查定时,简单写个1秒钟翻转的GPIO,然后用示波器或频率计检查。
评分
查看全部评分
评分
查看全部评分
好方法。方便。
// /* Configure PLLs ------------------------------------------------------*/
// /* PLL2 configuration: PLL2CLK = (HSE / 2) * 8 = 64 MHz */
// /* PREDIV1 configuration: PREDIV1CLK = PLL2 / 8 = 8 MHz */
//
// RCC->CFGR2 &= (uint32_t)~(RCC_CFGR2_PREDIV2 | RCC_CFGR2_PLL2MUL |
// RCC_CFGR2_PREDIV1 | RCC_CFGR2_PREDIV1SRC);
// RCC->CFGR2 |= (uint32_t)(RCC_CFGR2_PREDIV2_DIV2 | RCC_CFGR2_PLL2MUL8 |
// RCC_CFGR2_PREDIV1SRC_PLL2 | RCC_CFGR2_PREDIV1_DIV8);
//
// /* Enable PLL2 */
// RCC->CR |= RCC_CR_PLL2ON;
// /* Wait till PLL2 is ready */
// while((RCC->CR & RCC_CR_PLL2RDY) == 0)
// {
// }
//
//
// /* PLL configuration: PLLCLK = PREDIV1 * 9 = 72 MHz */
// RCC->CFGR &= (uint32_t)~(RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLSRC | RCC_CFGR_PLLMULL);
// RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1 | RCC_CFGR_PLLSRC_PREDIV1 |
// RCC_CFGR_PLLMULL9);
RCC->CFGR &= (uint32_t)((uint32_t)~(RCC_CFGR_PLLSRC | RCC_CFGR_PLLXTPRE | RCC_CFGR_PLLMULL));
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLXTPRE_PREDIV1_Div2 | RCC_CFGR_PLLSRC_PREDIV1 | RCC_CFGR_PLLMULL9);
#else
评分
查看全部评分