首页 > 其他分享 >AFIO-CH32FV2x_V3x--重映射功能的使用以及常见问题

AFIO-CH32FV2x_V3x--重映射功能的使用以及常见问题

时间:2023-04-01 14:11:13浏览次数:39  
标签:CH32FV2x 常见问题 映射 引脚 -- 复用 AFIO 外设 时钟

重映射功能

        外设引脚重映射的概念,即一个外设的引脚除了具有默认的端口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。

        简单的讲就是把管脚的外设功能映射到另一个管脚,但不是可以随便映射的。

部分重映射 & 完全重映射

  • 部分重映射: 功能外设的部分引脚重新映射,还有一部分引脚是原来的默认引脚。
  • 完全重映射:功能外设的所有引脚都重新映射
  •     我们以TIM2为例:
  •  

  •  默认映射脚位为不需要重映射配置的默认脚位,直接初始化外设时钟即可。如若使用后面几种组合,需要进行配置,配置流程如下:

  • 第一步:开启AFIO时钟:
  •  

    第二步: 调用库函数进行重映射:

     

           注意此步骤需要在第一步后再进行,同时注意此函数参数的选择,下面有三种参数选择,分别对应着上面几种映射组合,体现在手册里引脚描述如

  •        TIM2_CH2_1,TIM2_CH2_2,TIM2_CH2_3,那么后缀-1就代表着部分映射1,-2就代表着部分映射2,如此类推
  • 手册上类似描述如下:

     

    第三步:正常初始化外设时钟即可,并初始化对应通道对应引脚的GPIO时钟,和相应引脚配置。

     

     

    注:重映射常见问题

     

    一,怎么重映射不成功,打印相应的寄存器发现并未被成功赋值;

       检查上述步骤一和二是否反了,需要先开启AFIO时钟才可以对相应位进行操作

     

  • 二,将PA13,PA14脚复用为普通IO不成功/怎么将PA13,PA14脚复用为普通IO

       检查是否开了AFIO时钟,对应操作如下:

     

    三,晶振脚复用为普通IO不成功/怎么将晶振脚复用为普通IO

      与三问题类似,

  •  

    四, 将PA6-PA7复用为串口一的功能脚不成功        

  • 注意手册里的说明,PA6-PA7的组合为串口一的一个特殊组合,需要配合 AFIO_PCFR2 寄存器 bit26 USART1_RM1 使用,所以需要两次调用remap函数,操作如下:

  •  

     

  •  

     

     

     

     

     

     

     

标签:CH32FV2x,常见问题,映射,引脚,--,复用,AFIO,外设,时钟
From: https://www.cnblogs.com/wchmcu/p/17278478.html

相关文章

  • 【Linq】 左连接、右连接、内链接
    左外部联接可以看到和直接内连接的join差距在多了into,把可能为空的那个集合(表)放到一个集合,然后再对接进行DefaultIfEmpty(),再从这个结果中去取   stocksinfo表格   packetassociationstocks表格实现 stocksinfo表格和packetassociationstocks表格的左外......
  • 并发编程背景知识
    目录一、开篇介绍二、为什么要有操作系统三、什么是操作系统四、操作系统发展史手工操作——穿孔卡片联机批处理系统脱机批处理系统五、多道程序系统单道技术多道技术一、开篇介绍顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。进程的概念起源于操作系......
  • 软件测试经验与教训之测试手段与程序错误分析
    人们可以做的所有测试都可以分为5个方面进行描述:。测试员:进行测试的人。如用户测试需要站在用户,商家,供应商等不同角色的角度进行测试。覆盖率:测试了哪些内容。如功能测试中,要测试每个功能,接口测试中测试每个接口。潜在问题:测试的原因(要测试什么风险)如测试极值问题。活动:如何测......
  • Docker安装RabbitMQ
     安装步骤:一般情况,需要先安装部署Erlang环境再安装RabbitMQ环境。不过docker中,Erlang环境已经被docker自动安装,我们只需要简单几步操作即可完成RabbitMQ环境地安装+Web页面管理。端口开放如果在云服务上部署需在安全组开通一下端口:15672、5672、25672、61613、1883。15672(UI......
  • zabbix配置触发器。。。。即设置监控项报警的分界值!!
              {192.168.8.101:system.users.num.last()}>6            报警声音设置    测试触发器报警:   问题来了,触发器提醒运维人员,需要及时处理一般问题!! ......
  • 进程的等待
    关于进程等待在子进程运行结束后,进入僵死状态,并释放资源,子进程在内核中的数据结构依然保留.父进程调用wait()与waitpid()函数等待子进程退出后,释放子进程遗留的资源(taskstruct)wait与waitpidwait函数函数头文件#include<sys/types.h>#include<sys/wait.h>函数......
  • 《Mysql基础》【Mysql表查询、去重、表连接、左连接 右连接、子表查询、排序、分组等
     --mysql数据库程序设计笔记:第三章:查询1、单表查询:1)、简单查询查所有列:格式:select*from表名;举例:mysql>select*fromtb_student;+----+-----------+-------------+------+------------+----------+--------+---------+-------------------+|id|studentNo|s......
  • HTTP协议特点&详解UR与URL的区别与联系
    HTTP协议特点支持客户/服务器模式客户/服务器模式工作的方式是由客户端向服务器发送请求,服务器端响应请求,并进行相应服务   简单快速客户向服务器请求服务时,只需传送请求方法和路径请求方法常用的有GET,HEAD,POST。每种方法规定了客户与服务器练习的......
  • 使用vSphere Update Manager 升级 ESXi 主机
    使用vSphereUpdateManager升级ESXi主机vSphereUpdateManager vSphereUpdateManager 是用于升级、迁移、更新和修补群集主机、虚拟机和客户机操作系统的软件。 vSphereUpdateManager 可协调主机和虚拟机的升级。如果站点使用 vSphereUpdateManager,VMware建议......
  • defineExporse vue3中一个由子组件导出数据,让父组件调用的方法。
    子组件<scriptsetup>import{ref,reactive}from'vue'constisFlag=ref(false)constdata=reactive({name:'tom',age:18})//把数据导出defineExpose({data,isFlag})&......