搜索
bottom↓
回复: 0

[笔记]apm32f003 pwm输出,使用ch1和ch2需要重映射,需注意

[复制链接]

出0入53汤圆

发表于 2023-12-26 11:47:56 | 显示全部楼层 |阅读模式
apm32f003 pwm输出,使用ch3,ch4不用重映射,但是使用ch1和ch2需要重映射,需要特别注意,否则ch1和ch无输出
TIM1-ch3  pc3  不需重映射
TIM1-ch4  pc4  不需重映射

TIM1-ch1  pc6  需重映射
TIM1-ch2  pc7  需重映射


  1. void AFConfig(void)
  2. {
  3.     FMC_AFRConfig_T AFRConfig;

  4.     /* Set PC6 alternate function = TMR1_CH1 */
  5.     AFRConfig.AFR0 = FMC_OB_AFR_ENABLE;
  6.     AFRConfig.AFR1 = FMC_OB_AFR_DISABLE;
  7.     AFRConfig.AFR3 = FMC_OB_AFR_DISABLE;
  8.     AFRConfig.AFR4 = FMC_OB_AFR_DISABLE;
  9.     AFRConfig.AFR5 = FMC_OB_AFR_DISABLE;
  10.     /* Set PC3 alternate function = TMR1_CH1N */
  11.     AFRConfig.AFR7 = FMC_OB_AFR_ENABLE;

  12.     FMC_Unlock();
  13.     FMC_EraseOptionByte();
  14.     FMC_ConfigOptionByteAFR(&AFRConfig);
  15.     FMC_Lock();
  16. }

  17. void TMR1_Init(void)
  18. {
  19.     TMR1_OCConfig_T ocConfigStruct;
  20.     TMR1_TimeBaseConfig_T timeBaseConfig;
  21.        

  22.     /* Up-counter */
  23.     timeBaseConfig.cntMode = TMR1_CNT_MODE_UP;
  24.     /* Set counter = 500 */
  25.     timeBaseConfig.count = 500;
  26.     /* Set divider = 47.So TMR1 clock freq ~= 24/(47 + 1) = 500KHZ */
  27.     timeBaseConfig.divider = 47;
  28.     /* Repetition counter = 0x0 */
  29.     timeBaseConfig.repetitionCount = 0;
  30.     TMR1_ConfigTimerBase(TMR1, &timeBaseConfig);

  31.     /* Select channen1 3 */
  32.     ocConfigStruct.channel = TMR1_CHANNEL_1;
  33.     /* Set compare value = 250 */
  34.     ocConfigStruct.count = 250;
  35.     /* PWM1 mode */
  36.     ocConfigStruct.mode = TMR1_OC_MODE_PWM1;
  37.     /* Idle State is reset */
  38.     ocConfigStruct.OCxIdleState = TMR1_OC_IDLE_RESET;
  39.     /* Idle State is reset */
  40.     ocConfigStruct.OCxNIdleState = TMR1_OC_IDLE_RESET;
  41.     /* Disable CH1N ouput */
  42.     ocConfigStruct.OCxNOutputState = TMR1_OC_OUTPUT_DISABLE;
  43.     /* Enable CH1 ouput */
  44.     ocConfigStruct.OCxOutputState = TMR1_OC_OUTPUT_ENABLE;
  45.     /* CH1N polarity is high */
  46.     ocConfigStruct.OCxNPolarity = TMR1_OC_POLARITY_HIGH;
  47.     /* CH1 polarity is high */
  48.     ocConfigStruct.OCxPolarity = TMR1_OC_POLARITY_HIGH;
  49.     TMR1_ConfigOutputCompare(TMR1, &ocConfigStruct);

  50.     /* Enable PWM output */
  51.     TMR1_EnableOutputPWM(TMR1);

  52.     /* Enable TMR1  */
  53.     TMR1_Enable(TMR1);
  54. }
复制代码




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 16:25

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表