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

STM32G071RB TIM DMA

[复制链接]
STMCU小助手 发布时间:2022-12-15 13:31
1 实现的波形效果3 ~7 A% O5 u8 r* O
) a8 _1 d+ y8 ^# O4 j' Q
532a8d9b67c7471a9d1658b97f49aa04.png
# b7 Y5 x& L( h( P# a/ j% e+ y7 l  w8 g- M0 u, A: l
2 CubeMX设置6 k( _: V, a, ?& y1 m7 q. B

- @1 O1 x, h7 ~5 G) ~4 ^ d4d2391766c7487eae02ef0753a13e62.png
. H- i, y# G0 {, i  K; R* C" D
+ B4 [! v$ \. b1 W
c7f64c68cab743eeaba9529a929cac04.png
0 v/ c: d& Q" `  L7 Q. @
& t; [6 S% h! t* A9 \

7 A! ]" `( C; z7 L4 q* E: [! a! O 27276d4cb1a741c8bda5edb854a1edcb.png 9 T; ]9 X1 }+ N' g8 k2 ^

! B- `! ~1 c+ W- A$ ^$ D+ E3 自动生成代码后要修改一下
% v/ v. T/ w/ ~MX_DMA_Init();这个函数要在MX_TIM1_Init();之前的位置
' B& `6 ~  z" r
# b2 F% Z/ e! y5 V
  1. int main(void)2 G5 o% b/ a  @8 n' I$ Z' |: S
  2. {
    9 J7 [% e* C  _, |" \
  3.   /* USER CODE BEGIN 1 */
    " c3 t% y* G& z. d. s( Q0 }6 M

  4. % l+ N2 M% @% ~+ l9 s: [
  5.   /* USER CODE END 1 */: F2 u! M. w3 I- K+ |
  6. $ e$ w3 `% U: j  l, c* {
  7.   /* MCU Configuration--------------------------------------------------------*/6 {5 x0 ^5 h3 @$ e# \  m! a

  8. * w3 e1 W4 p* q; S' G
  9.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
      T7 C0 p4 }7 g
  10.   HAL_Init();/ y( {, I  {4 V4 R/ }+ ~
  11. $ y* B' _/ n1 m* [
  12.   /* USER CODE BEGIN Init */
    + g  l; u+ F4 j+ ]8 ^5 H

  13. * e' p! k6 s3 s& R4 @8 J' q) ]0 ?# j
  14.   /* USER CODE END Init */
    * o2 G8 C; i; m* @' b

  15. , L* f1 J7 a& S
  16.   /* Configure the system clock */
    - ^6 j& o, I' a3 t' M9 ], t
  17.   SystemClock_Config();5 \) p' Z/ }% J; B. S* l

  18. . t' R2 m2 T3 @) ]( K9 _$ `9 [
  19.   /* USER CODE BEGIN SysInit */
    6 @8 D% _! f/ t8 g9 W

  20. . r- f1 H8 j% z9 E7 {1 c0 I
  21.   /* USER CODE END SysInit */
    # C7 W9 q  i$ w- e8 w" E+ t; t

  22. & B# U5 @9 p$ W
  23.   /* Initialize all configured peripherals */
    ) ?5 a2 x3 l. [9 C( m( j1 X
  24.   MX_GPIO_Init();; q) g' L7 N% X3 p7 i5 ^
  25.   MX_DMA_Init();
    ' d2 a5 \9 X3 m! r* k* E
  26.   MX_TIM1_Init();, w* a7 d/ A- v- ?: h& b  J- f
  27.   MX_USART2_UART_Init();8 r, x) T% l% s; ^; x& n7 G
  28.   /* USER CODE BEGIN 2 */8 o$ w7 y+ D& N8 U3 N/ T) I/ `: P
复制代码

* r' B2 k1 z* e! O' t) D+ s4 添加波形需要的数据,建立一个数组- \' S0 _; K0 G" h5 v
4 x% ], d. S8 {+ c
  1. /* Private user code ---------------------------------------------------------*/& }* L2 ^/ q% ^
  2. /* USER CODE BEGIN 0 */
    , K9 A6 f' Y; @, S
  3. uint32_t dTime_data[20]={200,500,1000,1500,2000,2500,3000,3500,4000,4500,5000,00,5500,6000,6500,7000,7500,8000,9000,9500};
    2 J: {* H0 }; ^
  4. /* USER CODE END 0 */
复制代码
/ e9 ?; y# F) l: x
5 添加TIM_DMA启动函数
0 J; r4 ?5 T  o0 V, J! F# P* f9 B3 i
  1.   /* USER CODE BEGIN 2 */
    8 M; `8 a9 h1 Y: c/ ]
  2.        
    & o" B) {& I; R* Y  Z# H
  3.         HAL_Delay(500);: m! {( ?  q9 F( K

  4. 5 x4 O5 R, ?( l# u. j  `8 [+ d
  5.   if( HAL_TIM_PWM_Start_DMA(&htim1,TIM_CHANNEL_3,dTime_data,20) != HAL_OK )! T/ e% ?. H" k' h0 D* Z# i
  6.         {
    $ e* L2 h3 i# k
  7.                 Error_Handler();& o0 R$ N) `) U
  8.         }
    2 \* H) \; d/ t$ v9 U  f6 y7 e
  9. " w; I+ L1 U) \; @9 g' e0 f
  10.   /* USER CODE END 2 */
    * n- d# J$ K* T1 R3 p& d

  11. 5 \4 F  w/ n' R. s6 F
  12.   /* Infinite loop */6 c8 r( N# R( c2 S1 V2 ^& U
  13.   /* USER CODE BEGIN WHILE */
    5 ]+ q6 W  B# m5 u. u
  14.   while (1)
    % K- r+ p6 H- f- w" d# @
  15.   {
      Y4 f% b* k4 Q& s' T
  16.     /* USER CODE END WHILE */1 b# E) F4 |6 D% i
  17. 3 G. W% @3 _0 n( Q; R2 j
  18.     /* USER CODE BEGIN 3 */6 Z6 b) I& C2 j4 I- W% W
  19.   }
    ; b+ \3 f  ]: b; ]" s* _; {
  20.   /* USER CODE END 3 */
复制代码
& K* s% B; K5 v/ }$ V
7 结束
! o; g' q5 F3 Q+ U( W# b调试了好几天,因为DMA设置问题,默认了CubeMX的参数,一直调不出来,后来改成Memory To Peripheral
: `% d6 G$ ~& _$ I( M% @1 j% k& i还有一个问题点,就是CubeMX生成的代码,MX_DMA_Init();这个函数要在MX_TIM1_Init();之前的位置,这个问题是通过参考ST官方代码找到的
# V: }9 ?9 t" U! y; z' M* F+ T————————————————% ^, B# ^8 M, e
版权声明:xyang189 D4 C! V! i/ C" V  D/ b

4 O. a0 K( }! u2 b% ]" G8 w% S8 X/ C! U, c
赞 收藏 评论0 发布时间:2022-12-15 13:31

举报

0个回答

所属标签

相似技术帖

官网相关资源

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