
最近好多人问CubeMx的问题,而且归根都是对CubeMx的不熟悉,或者是只有简单例程,但是自己生成一些复杂的例程就举手投降了,基于此,我后期会陆续提供各种不同的cubeMx的步骤..望各位好好细读,前面安装部分就不用看了,后面有对框架很细的介绍 今天先来个框架,普通外设的详细介绍, PS:在你们CubeMx设置的路径下面大部分例程..还有中间层的.. 如:C:\Users\xxxxx\STM32Cube\Repository 目录: Installation of STM32CubeMX •Fast CubeMX features •HAL overview •Basic of CubeMX tool and HAL basics •CubeMX configuration and project generation •First HAL project generated by CubeMX •Project structure •Interrupts in CubeMX and HAL •DMA in CubeMX and HAL •Communication peripheries in CubeMX and HAL |
STM32Cube stepBystep è´è¶ç²ç¬äº«ç.pdf
下载8.2 MB, 下载次数: 327
cube的可以去这里,这里挺全的,就是cube版本有点旧
stm32f407vetx,STM32Cube_FW_F4_V1.21.0/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rtc.c
的HAL_RTC_SetDate函数中,大约652行,应该是明显的错误。简化版本为:
HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
{
uint32_t datetmpreg = 0U;
。。。
if(Format == RTC_FORMAT_BIN)
{ 。。。
}
else
{
assert_param(IS_RTC_YEAR(RTC_Bcd2ToByte(sDate->Year)));
assert_param(IS_RTC_MONTH(datetmpreg));
assert_param(IS_RTC_DATE(datetmpreg));
datetmpreg = ((((uint32_t)sDate->Year) << 16U) | \
(((uint32_t)sDate->Month) << 8U) | \
((uint32_t)sDate->Date) | \
(((uint32_t)sDate->WeekDay) << 13U));
}
此时,datetmpreg为0,会引发两次assert_param例外。
怀疑是
assert_param(IS_RTC_MONTH(sDate->Month));
assert_param(IS_RTC_DATE(sDate->Date));
被误拼写了。