沁恒ch32V208处理器开发(五)复用与重映射

news2024/11/26 12:51:27

目录

    • 概述
    • 实现方法
      • GPIO 及其复用功能
      • AFIO 的寄存器实现
    • 重映射的功能限制

概述

在ch32V2xx系列处理器中,芯片引脚数从28到68不等,分为几个系列,不同型号之间外设资源有差异,所以,引脚复用和重映射功能 也不一样,在前文的USARTx_CFG(void)函数中,对串口USART1的初始化中,我们已经使用了映射功能,方式为:

		GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);

该变量复位后默认的串口管脚配置,就是一个典型的重映射应用。比较常用的adc,定时器和USART 为例,ch32V2xx系列处理器的映射关系如下:

在这里插入图片描述在这里插入图片描述在这里插入图片描述

实现方法

ch32V2xx系列处理器许多引脚拥有复用功能,很多其他的外设把自己的输出和输入通道映射到这些引脚上,实现方法有:

GPIO 及其复用功能

为了丰富处理器的功能,增强设计的灵活性,GPIO 模块被设计成兼容输入(包括模拟和数字)和输出复用功能,复用被其他外设复用时的结构框图如下:

在这里插入图片描述其中,1为模拟输入,2为逻辑输入,3为逻辑输出功能,启用输出的复用功能时,输出驱动器被使能,可以进一步按需要被配置成开漏或推挽模式,施密特触发器也被打开。
复用为输入是,输出数据寄存器被断开,出现在 IO 引脚上的电平将会在每个 APB2 时钟被采样到输入数据寄存器,在开漏模式下,读取输入数据寄存器将会得到 IO 口当前状态;在推挽模式下,读取输出数据寄存器将会得到最后一次写入的值。启用模拟输入时,不仅输出缓冲器被断开,输入驱动中施密特触发器的输入被禁止以防止产生 IO口上的消耗,上下拉电阻也会被禁止。
通过这些复用功能,GPIO就可以灵活配置为通用IO,模拟输入、定时器输出、捕获输入,USART的rx或tx等。例如,对USART的TX,RX,RTS,CTS,CK等,对应的GPIO重映射配置为:
在这里插入图片描述以USAET1为例,对应的可以重映射后服用的管脚见下表:
在这里插入图片描述通过配置USART1_RM1 和USART1_RM2 为 AFIO_PCFR2 即可USART配置不同的映射管脚。

AFIO 的寄存器实现

前面我们知道了,usart1的复用配置是通过USART1_RM1 和USART1_RM2 为 AFIO_PCFR2来实现的,ch32V2xx系列处理器对重映射都是通过AFIO 相关寄存器实现的,列表如下:
在这、里插入图片描述其中,AFIO_PCFR1的定义如下:
在这里插入图片描述可以看到,bit2正是USART1_RM1的位置,再配合 AFIO_PCFR2 寄存器 bit26 USART1_RM2 使用,实现了对usart1的复用配置,指令如下:

	GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);

重映射的功能限制

需要注意的是,重映射关系受限于管脚资源,封装管脚资源越少的规格,重映射越少,甚至不能重映射,例如OSC_IN/OSC_OUT 可以用做 GPIO 的 PD0/PD1,通过设置重映射寄存器 1(AFIO_PCFR1)实现。 这个重映射只适用于 20、32、48 和 64 脚的封装,但 CH32V203RBT6 只有 OSC_IN 和 OSC_OUT 功能脚,不支持映射(对于 LQFP100 封装,由于 PD0 和 PD1 为固有的功能引脚,因此没有必要 再由软件进行重映像设置。)
在定时器复用功能重映射的TIM1_RM=11 完全映射,仅 LQFP100 封装,支持该位重映射功能。TIM3_RM=11 完全映射,对64 脚以下封装不支持该位映射,等等不止这些,用户在使用对应封装的cpu处理器之前,需要对照datasheet仔细确认,以免造成设计失误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/877874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

jmeter获取mysql数据

JDBC Connection Configuration Database URL: jdbc:mysql:// 数据库地址 /库名 JDBC Driver class:com.mysql.jdbc.Driver Username:账号 Password:密码 JDBC Request 字段含义 字段含义 Variable Name Bound to Pool 数据库连接池配置…

分类预测 | MATLAB实现GWO-BiGRU-Attention多输入分类预测

分类预测 | MATLAB实现GWO-BiGRU-Attention多输入分类预测 目录 分类预测 | MATLAB实现GWO-BiGRU-Attention多输入分类预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.GWO-BiGRU-Attention 数据分类预测程序 2.代码说明:基于灰狼优化算法(GW…

这四种订货系统不能选(二):不能独立部署

订货系统在传统批发贸易企业数字化转型中扮演着重要的角色。然而,有一种类型的订货系统并不适合选择,那就是无法独立部署的系统。 无法独立部署的订货系统意味着数据必须存放在软件厂商的服务器上。当我们选择这样的系统时,需要确保系统具备强…

C++11并发与多线程笔记 (1)

C11并发与多线程笔记(1) 1、并发、进程、线程的基本概念和综述1.1 并发1.2 可执行程序1.3 进程1.4 线程1.5 学习心得 2、并发的实现方法2.1 多进程并发2.2 多线程并发 3、C11新标准线程库 1、并发、进程、线程的基本概念和综述 1.1 并发 指在一个时间段…

Kotlin入门:面向对象编程——04

一、类和对象: 在Kotlin中,使用class关键字定义类,使用object关键字定义对象。类是对象的蓝图,用于描述对象的属性和行为,而对象则是类的一个实例。类可以包含属性(成员变量)和方法&#xff08…

SpringBoot复习:(47)ConfigFileApplicationListener

它监听ApplicationEnvironmentPreparedEvent和ApplicationPreparedEvent。 它会把配置文件中配置的内容注入到环境中去,配置文件也就生效了

Photoshop快捷键大全

Photoshop是一款非常强大的图像处理软件,它提供了许多快捷键,可以帮助用户更快地完成操作。熟练掌握这些快捷键,可以大大提高工作效率,让您更加专注于创作。 Photoshop快捷键汇总: 一、基本操作快捷键 1. 新建文档…

TX Text Control .NET Server for ASP.NET Crack

TX Text Control .NET Server for ASP.NET Crack TX Text Control.NET Server for ASP.NET是用于Web应用程序或服务的服务器端组件。它是一个完全可编程的ASP.NET文字处理引擎,提供了广泛的文字处理功能。使用TX Text Control.NET Server,程序员可以开发…

day3 TCP/UDP基础模型、多点通信、TCP开发服务器模型

1.多线程中的newfd,能否修改成全局,不行,为什么? 不能。线程之间共享附属进程的所有资源,newfd是全局变量,作用域是全局,一经更改所有线程中的newfd都会变化。 2.多线程中分支线程的newfd能否…

Android 并发编程--阻塞队列和线程池

一、阻塞队列 队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作…

TCP消息传输可靠性保证

TCP链接与断开 -- 三次握手&四次挥手 三次握手 TCP 提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作。 所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中,这一…

NLP文本匹配任务Text Matching [无监督训练]:SimCSE、ESimCSE、DiffCSE 项目实践

NLP文本匹配任务Text Matching [无监督训练]:SimCSE、ESimCSE、DiffCSE 项目实践 文本匹配多用于计算两个文本之间的相似度,该示例会基于 ESimCSE 实现一个无监督的文本匹配模型的训练流程。文本匹配多用于计算两段「自然文本」之间的「相似度」。 例如…

【ARM】Day1

作业1:思维导图 作业2: 作业3:用for循环实现1~100之间和5050

【Axure高保真原型】通过输入框动态控制环形图

今天和大家分享通过输入框动态控制环形图的原型模板,在输入框里维护项目数据,可以自动生成对应的环形图,鼠标移入对应扇形,可以查看对应数据。使用也非常方便,只需要修改输入框里的数据,或者复制粘贴文本&a…

Go语言为何强大?Python性能差为何霸榜编程语言第一?

目录 Go 语言为何强大 Go、C、C、Java、python做个简单的性能比较 Python底层是如何调用C代码的 为什么python在数据科学、机器学习和自动化较其他语言有优势 对一名软件工程师而言,语言虽然只是一门工具,往往一个软件工程师身上都会写好几门&#x…

MQTT基础入门与资料收集

文章目录 目的基础入门MQTT相关软件MQTT客户端软件MQTT Broker(服务器)软件 MQTT编程总结 目的 最近项目中涉及到MQTT相关内容,在此对相关内容做个基础的梳理。 基础入门 MQTT官网: https://mqtt.org/ MQTT是用于物联网&#x…

十大经典排序算法

目录 前言 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 计数排序 桶排序 基数排序 十大排序之间的比较 总结 前言 学了数据结构之后一直没有进行文字性的总结,现在趁着还有点时间把相关排序的思路和代码实现来写一下。概念的话网上…

【LeetCode】307 . 区域和检索 - 数组可修改

307 . 区域和检索 - 数组可修改 区间和解题思路 这是一道很经典的题目,通常还能拓展出一大类问题。 针对不同的题目,我们有不同的方案可以选择(假设我们有一个数组): 数组不变,求区间和:「前缀和…

多线程(进阶)

一、常见的锁策略 1.1读写锁 多线程之间,数据的读取方之间不会产生线程安全问题,但数据的写入方互相之间以及和读者之间都需 要进行互斥。如果两种场景下都用同一个锁,就会产生极大的性能损耗。所以读写锁因此而产生。 读写锁(r…

高通清库存芯片大降价,由于手机复苏不及预期

KlipC报道:8月14日,高通为刺激客户拉货意愿并加快出清库存,近期也开启了降价模式,锁定中低端 5G 手机芯片。 KlipC的合伙人Andi D指出高通在非苹中高端手机市场一直处于领先地位,因此本次降价聚焦在中低阶领域&#xf…