你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】关于stm32g030c8t6使用过程钟踩过的坑

[复制链接]
STMCU小助手 发布时间:2021-11-10 18:02
最近使用STM32G030来做项目,使用的过程发现有太多的坑了,折腾自己快要崩溃,主要问题还是初始化的过程中初始化失败,导致程序不运行。
+ C$ n! ?! ~2 {( ?9 U' S% J
! g: I' I) l4 [现在总结下遇到的问题:: q$ X; D" U) [1 f6 o; u5 X
1.ADC使用多通道扫描模式用DMA传输数据,HAL_ADC_Start(&hadc1);这个开始必须要放在DMA初始化相关函数的后面。* _8 J  U, X+ g
2.开启串口中断后导致程序异常不运行,最后把开启传偶中断函数放在main函数的最前面就可以正常运行
' j$ W, ]0 c* C& N% i0 y" S3.程序是按顺序上之下运行,初始化时候要考虑好顺序关系。3 Q! c. a8 T; N( @
0 e0 U' v" c. ]" D8 t
比如按下面的顺序进行初始化才可以正常的运行
# ^7 R- m' Q' X8 \
  1. /* USER CODE BEGIN 1 /
    & t+ [' P& z1 t. J* F# m! t
  2. / STM32G0xx HAL library initialization:
    % N2 I  W. @3 |" B
  3. - Configure the Flash prefetch
    & ?/ [0 f' l- H; j" {
  4. - Systick timer is configured by default as source of time base, but user' u: I: _7 N+ J3 j4 k( j
  5. can eventually implement his proper time base source (a general purpose. N5 M( a, z0 S' `
  6. timer for example or other time source), keeping in mind that Time base
    3 k/ k4 ^  h  a% X0 ~/ W* i
  7. duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and
    . ]+ U! I7 |9 e5 R/ J9 O
  8. handled in milliseconds basis.
    1 D8 p# v7 l2 ?: p$ h0 ~/ Y/ ^
  9. - Low Level Initialization* C  L$ g7 T+ y, A# G" J6 [' M1 O$ f
  10. */
    $ P; D9 [) Z% y! f

  11. ! I% p% r- z( ]% f# ^
  12. /* USER CODE END 1 */
    ' I: s- X$ ^: H8 V

  13. ! h" ^. Q. U! V/ m# H1 [2 ?' D! B
  14. /* MCU Configuration--------------------------------------------------------*/7 [" L# G( H8 h
  15. ' J0 @" F( a; @% \; i9 u& v  N3 u
  16. /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    : X1 U! v! a2 t5 D% W+ r
  17. HAL_Init();; v! W& R& e7 S' P. B1 @& q' _' w
  18. Enable_IT_Uart_Fun();9 u+ H: l' i% O2 S8 B
  19. + b4 v: I& B3 ?; g  C- k
  20. /* USER CODE BEGIN Init /" U' M# f' d) N5 z$ _! B
  21. / Configure the system clock to 56 MHz /
    ! Y9 O: V8 Q' M& |
  22. / USER CODE END Init */
    ) C: |  Q& Z3 `: o6 f; A
  23. : N# M3 w2 l! b0 {# r# ]
  24. /* Configure the system clock *// x) F, U9 G9 v1 F4 \
  25. SystemClock_Config();
    4 j8 a& X0 B5 ]. ~! l, ~

  26. + X6 T7 N7 O7 r) x
  27. /* USER CODE BEGIN SysInit */
    + `* K) J. O1 M3 o& o9 p& w4 S
  28. & @1 V  g5 v" \$ q2 ?4 @
  29. /* USER CODE END SysInit */& p5 V# U: T# K0 F* ?  Q+ N
  30. ; S& S3 @  j7 K4 ?7 W% R" B, o& Y
  31. /* Initialize all configured peripherals /- F& W& `2 b7 [1 q, t$ {8 B, ?
  32. MX_GPIO_Init();, x$ h, r6 x3 M- ?
  33. MX_DMA_Init();! e% K( ^0 z# q9 u4 W9 G3 ~  B
  34. MX_ADC1_Init();
    2 N6 N. M; ~- c# p- g! P' c( S
  35. MX_USART2_UART_Init();
    % i0 C2 P$ |4 ]
  36. MX_IWDG_Init();
      ]% @6 G2 Y9 z, H0 E2 a
  37. MX_USART1_UART_Init();' o* Y" A3 k1 D
  38. / USER CODE BEGIN 2 */5 k, a7 W* d& ?# c* Z
  39. LED_Config();2 Z- [1 `$ f5 v) D0 {% H5 P
  40. Lcd_Init();
    . F. d3 [9 L2 H& {$ p7 j
  41. Clear_Screen();
    ' ?6 {8 |: @  {" R
  42. Show_Picture();/开机显示logo/+ y9 }! X" m6 F0 F: W! x! B
  43. Wireless_Mode_Config();0 `/ H- m  h! J0 V6 _
  44. : H4 B* w' U$ X& H! z7 M
  45. Flash_Init();
    ; ^/ G5 H) r6 `* I4 J5 s8 x8 u) l
  46. if (HAL_ADCEx_Calibration_Start(&hadc1) != HAL_OK)
    ; }; {2 `7 a8 z0 l* M  s+ b
  47. {- x$ h' L$ k, N; u4 u5 I
  48. /* Calibration Error */0 n) E3 o6 M3 i. h4 w
  49. while(1);- s9 P2 `. Y. `: V
  50. }2 x& c/ l$ `) u) X# S- c- G. k
  51. if (HAL_ADC_Start_DMA(&hadc1,(uint32_t )ADC_ConvertedValue,7) != HAL_OK)( v; c! _  i; r  i
  52. {
    ( Z; ~7 V- f3 a+ O: K1 @# j
  53. / ADC conversion start error */
    ' C( f6 `+ _/ N, v
  54. while(1);- Y4 g% {0 {) Q$ ^  W- [/ d3 v5 R$ R
  55. }
    % @# Q7 H; q3 ^% \5 E; L9 q1 S5 x
  56. HAL_ADC_Start(&hadc1);" D8 q8 G) J' E* s$ B. ?6 c$ |9 N
  57. * n+ ?$ u, b1 R8 j
复制代码

% T0 x* ~6 e6 j. x% R
$ q' [- y$ ~! f) Q. h
赞 收藏 评论0 发布时间:2021-11-10 18:02

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版