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

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

[复制链接]
STMCU小助手 发布时间:2021-11-10 18:02
最近使用STM32G030来做项目,使用的过程发现有太多的坑了,折腾自己快要崩溃,主要问题还是初始化的过程中初始化失败,导致程序不运行。
9 @: T: C# a% [$ x+ b- E/ F+ ^/ W& R' h& }% T
现在总结下遇到的问题:- }( D) J  m" w9 C6 X: g& `+ n8 Y+ V
1.ADC使用多通道扫描模式用DMA传输数据,HAL_ADC_Start(&hadc1);这个开始必须要放在DMA初始化相关函数的后面。, \, |( w% g- j
2.开启串口中断后导致程序异常不运行,最后把开启传偶中断函数放在main函数的最前面就可以正常运行5 M6 ^' S9 ^2 Q+ |2 G7 a1 Q' ]
3.程序是按顺序上之下运行,初始化时候要考虑好顺序关系。
' Y4 g* ?$ n% k- Y8 X/ ]. {) ~: X$ k2 J+ d5 v7 r
比如按下面的顺序进行初始化才可以正常的运行
% ~7 N& D/ d0 p! C$ b# b& u0 o! i
  1. /* USER CODE BEGIN 1 /$ S  B8 O2 L# O+ a+ o) R+ W
  2. / STM32G0xx HAL library initialization:
    ( f1 H: g1 ]* t2 H
  3. - Configure the Flash prefetch$ Z2 Q2 S5 z% B5 m0 J3 m
  4. - Systick timer is configured by default as source of time base, but user
    ) i4 H2 _5 w. I0 t
  5. can eventually implement his proper time base source (a general purpose
    / g% Q# b: C0 D% i
  6. timer for example or other time source), keeping in mind that Time base
    0 {6 q) l, k/ n* K$ _$ f% O
  7. duration should be kept 1ms since PPP_TIMEOUT_VALUEs are defined and
    6 _; g1 K1 u2 R
  8. handled in milliseconds basis.! d  q+ T. c4 }# O' P$ Z
  9. - Low Level Initialization$ j' f) a; U, H. M% h
  10. */' u" @9 K9 e4 Y7 j& Q$ m& \% G
  11. 7 L. e1 ?+ z; {0 X! N; G3 r  z
  12. /* USER CODE END 1 */
    * H" G% M& o2 c$ ]

  13. ( h' v" s/ E9 X
  14. /* MCU Configuration--------------------------------------------------------*/1 r" o( P$ e7 h3 Z4 M$ z+ ^1 b
  15. 4 ?$ g2 Q2 |4 z9 A$ J8 |
  16. /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
    7 N( T, [; J: J7 X1 w
  17. HAL_Init();
    , g7 w/ K* p# f; }% Q5 r1 O
  18. Enable_IT_Uart_Fun();
    9 z- C7 E9 I; b5 k. e
  19. + j7 T' [% x9 G0 d: d2 h' r
  20. /* USER CODE BEGIN Init /' v$ l1 `; O" _4 I' V
  21. / Configure the system clock to 56 MHz /
    " I- B$ b6 T1 E; y7 a: X
  22. / USER CODE END Init */
    ) G: H; }/ {& r  [3 f; i- b

  23. & s, k7 g# M" Q
  24. /* Configure the system clock */
    & D$ s! v: E$ x/ N- S
  25. SystemClock_Config();
    & S2 U& ^) I% F& r) C. G/ j
  26. 8 p+ {9 c' G5 Z4 Q5 v
  27. /* USER CODE BEGIN SysInit */
    3 x9 B. x- x# D3 a! k3 T0 |0 V
  28. . Q0 N# Y: P$ a$ z
  29. /* USER CODE END SysInit */
    ! o' f# j) d" @" R

  30. ) G# Y+ x2 y3 X7 s  W
  31. /* Initialize all configured peripherals /1 e* _; V0 z4 z5 K( \
  32. MX_GPIO_Init();
    2 p' a5 f' {' U4 s
  33. MX_DMA_Init();
    " r5 ]* T' J: P( n1 f8 [
  34. MX_ADC1_Init();6 |. _4 \2 b6 [& c( U) s. I
  35. MX_USART2_UART_Init();
    1 I9 F) c2 t2 K
  36. MX_IWDG_Init();
    % ~" E: T# a: b" Q" X* h
  37. MX_USART1_UART_Init();
    0 b! J9 P% Z& m/ G
  38. / USER CODE BEGIN 2 */2 z- _  g0 X' X) W3 k' ]
  39. LED_Config();3 o+ a% g! e1 t+ I% R5 T5 P( K
  40. Lcd_Init();$ G: A/ n) ~- Z1 a: J) f
  41. Clear_Screen();
    2 v; y0 p2 d3 J* i# R, c1 v  e% I
  42. Show_Picture();/开机显示logo/
    ) E9 w5 `! L' B( X) R/ ?6 y" f
  43. Wireless_Mode_Config();' t/ r1 e' X1 B
  44. ( Y0 G# x4 x+ u7 N' c
  45. Flash_Init();& l2 D, \4 U2 K4 ~3 @) C! R
  46. if (HAL_ADCEx_Calibration_Start(&hadc1) != HAL_OK)
    8 ^% F9 U, I; ?+ w
  47. {. {9 x* v9 H, c$ @
  48. /* Calibration Error */1 x! @2 A  B9 c, \
  49. while(1);; m% j! B; Q" a7 W& V7 X
  50. }. H7 o! K' R* w: ^* S
  51. if (HAL_ADC_Start_DMA(&hadc1,(uint32_t )ADC_ConvertedValue,7) != HAL_OK)5 r. |! Q& j. _" t; M/ }: ~6 c
  52. {9 `* b* {+ ^3 k
  53. / ADC conversion start error */
    5 G4 E7 J2 J  y" L* n
  54. while(1);+ l: G8 }; A8 [* h" l
  55. }/ i+ x5 Y5 y7 Q
  56. HAL_ADC_Start(&hadc1);
    * W# L/ ^+ u& N; o
  57. 9 n7 K3 Q3 Z# v3 M2 t/ S: @
复制代码
: c9 b9 j4 s) r

# n$ A1 g5 i( j& B, y+ f+ D
收藏 评论0 发布时间:2021-11-10 18:02

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版