ST意法半导体
直播中

汪潇潇

8年用户 920经验值
私信 关注
[问答]

怎样使用1个for循环将HAL库与CubeMX组合起来使用呢

我有一个我最确定的简单 C 问题(我是硬件专家)......
为简洁起见,我想采用以下语句并使用 1 个 for 循环将它们组合起来,但不知道如何执行此操作的语义......我正在将 HAL 库与 CubeMX 一起使用:
  •                 tiM2->CCR1 = pwmPulse[speed] - HAPTIC_PW;
  •                 TIM2->CCR2 = pwmPulse[speed] - HAPTIC_PW;
  •                 TIM2->CCR3 = pwmPulse[speed] - HAPTIC_PW;
  •                 TIM2->CCR4 = pwmPulse[speed] - HAPTIC_PW;
以下是失败的尝试:
  •                 for (uint8_t i = 0; i < 4; i++)
  •                 {
  •                         TIM2->(CCR1 + i) = pwmPulse[speed] - HAPTIC_PW;
  •                 }
谢谢您的帮助








回帖(1)

石天才

2022-12-19 15:11:30
感谢大家的投入。我有以下代码,它似乎有效。有人可以向我解释为什么 (4*i) 不起作用吗?寄存器定义为 __IO uint32_t,我原以为我需要将指针提前 4*i 才能更新正确的寄存器,但事实似乎并非如此???


  •                 pTim1 = &TIM1->CCR1;
  •                 pTim2 = &TIM2->CCR1;
  •                 for (uint8_t i = 0; i < 4; i++)
  •                 {
  •                         *(pTim1 + (i)) = (pwmPulse[speed] - HAPTIC_PW);
  •                         *(pTim2 + (i)) = (pwmPulse[speed] - HAPTIC_PW);
  •                 }
举报

更多回帖

发帖
×
20
完善资料,
赚取积分