• stm32管脚重映射


    一、问题描述

      最近做了一块板子,功能可以理解成输出pwm波

    程序在实验板(型号rct6)上没有问题,可是在我做的板子上就有问题了,输出不了波形,我做的板子是(r8t6型号的片子)。

    二、发现问题

    发现问题是很sb的,没有注意这两个片子的差异。

    我rct6输出pwm用的定时器是TIM8的ch2、ch3这两路,也就是PC7、PC8管脚。

    但是呢,新做的板子r8t6根本没有定时器8,只有定时器1、2、3、4。累死也输出不出来波形啊!

    三、解决问题

    那咋办,板子已经做好了,仔细看r8t6片子的说明文档,有了新奇的发现。

     其实这俩片子封装都是一样的,焊在电路板上管脚看不出啥区别。

    但是从R8T6芯片手册可以看出来能用R8T6的TIM3    代替     RCT6的TIM8。

    怎样替换呢?

    从芯片资料可以看出,r8t6的TIM3也用到了PC7、PC8。只不过是被Remap上去的,就是我们所说的映射。

     如下图所示:

    原来默认TIM3的四个通道对应的管脚是PA6,PA7,PB1,PB0

    四、如何实现映射呢

    经过查资料,主要映射有四步,这四步的顺序不能错了,顺序很重要。

    //板子不同,要对管脚映射
         //1.使能重映射后用到的GPIO的时钟;
         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  //使能GPIO外设时钟使能
        //2.使能功能外设时钟;就是用到哪个定时器,使能哪个功能外设时钟。注意APB2时钟对应的也有定时器。
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);// 
        //3.使能AFIO时钟;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
        //4.开启重映射;
        GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);   

    顺序很重要啊

  • 相关阅读:
    Selenium IDE录制脚本
    CNN详细讲解
    #1 Numpy & Pandas
    1024程序员节背后的秘密:1024程序员节的前世今生
    JavaScript Promise
    React魔法堂:echarts-for-react源码略读
    C++——二叉搜索树
    电磁场与电磁波part1--矢量分析
    python开发之个微群聊机器人的开发
    seeker+ngrok 钓鱼获取目标位置
  • 原文地址:https://blog.csdn.net/m0_46171719/article/details/126402607