本人使用STM32F103C8T6自身的RTC时钟制作了一个时钟定时器,运行正常,但是发现一个问题:每次上电启动10次,大约会变慢大约9~10s。我的程序模板使用STM32CubeMX自动生成,并使用了HAL库。RTC的初始化函数如下: void MX_RTC_Init(void) { hrtc.Instance = RTC; hrtc.Init.AsynchPrediv = RTC_AUTO_1_SECOND; hrtc.Init.OutPut = RTC_OUTPUTSOURCE_NONE; HAL_RTC_Init(&hrtc); } 怀疑是HAL_RTC_Init(&hrtc)初始化的时候,重新设定RTC_PRL,暂停了时钟的counter计数? 于是我修改程序,在启动时检查BKP寄存器的数值,第一次启动运行HAL_RTC_Init(&hrtc),并标记BKP寄存器。第二次以后启动以后,运行 HAL_StatusTypeDef HAL_RTC_Init2(RTC_HandleTypeDef *hrtc) { //uint32_t prescaler = 0; /* Check input parameters */ if(hrtc == NULL) { return HAL_ERROR; } /* Check the parameters */ assert_param(IS_RTC_ALL_INSTANCE(hrtc->Instance)); assert_param(IS_RTC_CALIB_OUTPUT(hrtc->Init.OutPut)); assert_param(IS_RTC_ASYNCH_PREDIV(hrtc->Init.AsynchPrediv)); if(hrtc->State == HAL_RTC_STATE_RESET) { /* Allocate lock resource and initialize it */ hrtc-> Lock = HAL_UNLOCKED; /* Initialize RTC MSP */ HAL_RTC_MspInit(hrtc); } hrtc->State = HAL_RTC_STATE_READY; return HAL_OK; } HAL_RTC_Init2(&hrtc)是在原来HAL库里HAL_RTC_Init(&hrtc)的基础上,我自己修改创建的。其删除了设置RTC_PRL的内容。上电起动10次后,仍然变慢4~5s。 实在不知道还要如何改写,求助高手! |
stm32进入stop模式被莫名其妙唤醒(应该是systick)但是无法被WKUP引脚唤醒。
头文件找不到
软件为keil5,头文件未找到
通过FATFS文件系统读写SD卡创建文件可以了,但加入MSC,一直显示一个没有格式化的U盘盘符,也不能格式化,这是什么问题导致的
stm32f103汇编求助
cubemx 生成的freertos代码 在keil ac6下不能编译,有什么解决的方法吗
报错Could not determine GDB version using command: arm-none-eabi-gdb --version
stm32f107vct6配RTL8201例程
STM32F103VGT6 能代替 STM32F103VFT6 吗?
STM32 读取DHT20,跑的官方的例程一直读取失败,初学者,各位大佬能指点一下不