|
最近好多人问CubeMx的问题,而且归根都是对CubeMx的不熟悉,或者是只有简单例程,但是自己生成一些复杂的例程就举手投降了,基于此,我后期会陆续提供各种不同的cubeMx的步骤..望各位好好细读,前面安装部分就不用看了,后面有对框架很细的介绍+ \, A* q. L9 |# `% k! ^ 今天先来个框架,普通外设的详细介绍, PS:在你们CubeMx设置的路径下面大部分例程..还有中间层的..! a5 X7 g- r8 g* f* m' } 如:C:\Users\xxxxx\STM32Cube\Repository$ N* z; b! S. w) E! S0 \ 目录:. i1 Q' @+ v; ?; A Y% G. B Installation of STM32CubeMX •Fast CubeMX features8 ~$ x- |/ {0 P5 L5 T •HAL overview( ~! ~, g" [3 {. m( p •Basic of CubeMX tool and HAL basics •CubeMX configuration and project generation •First HAL project generated by CubeMX* ^+ p& ~, ^3 x7 l3 q" B2 E7 w5 f •Project structure% v% l( Q" f7 z% Q3 y •Interrupts in CubeMX and HAL, N# p" j5 j/ ^/ j* S0 T& r •DMA in CubeMX and HAL' [7 q+ q3 v8 J, L2 x. ]$ z | •Communication peripheries in CubeMX and HAL' H1 `4 p$ U, \. d. s |
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行,应该是明显的错误。简化版本为:( B9 B3 I% D6 W6 `9 ?6 V$ [. @
HAL_StatusTypeDef HAL_RTC_SetDate(RTC_HandleTypeDef *hrtc, RTC_DateTypeDef *sDate, uint32_t Format)
{ B/ A0 q, w/ _8 L/ k8 T
uint32_t datetmpreg = 0U;
。。。
if(Format == RTC_FORMAT_BIN)
{ 。。。
}
else
{ - C' B7 w; t% A# t
assert_param(IS_RTC_YEAR(RTC_Bcd2ToByte(sDate->Year)));
assert_param(IS_RTC_MONTH(datetmpreg));
assert_param(IS_RTC_DATE(datetmpreg));% @8 o/ n8 H3 l
datetmpreg = ((((uint32_t)sDate->Year) << 16U) | \
(((uint32_t)sDate->Month) << 8U) | \
((uint32_t)sDate->Date) | \
(((uint32_t)sDate->WeekDay) << 13U)); - W: S2 H. ~" p& G7 e3 t7 k: C, v
}, I9 l, }3 f$ h8 d
此时,datetmpreg为0,会引发两次assert_param例外。
怀疑是# N! x/ z" [! A1 V* R; |
assert_param(IS_RTC_MONTH(sDate->Month));/ @* ]! v5 D! m. y
assert_param(IS_RTC_DATE(sDate->Date));7 r$ V+ a% S+ C
被误拼写了。