MCU学习笔记_IO引脚复用和映射
MCU学习笔记
IO引脚复用和映射
1. 端口复用
2. 端口复用配置过程
1. 端口复用
STM32有很多内置外设,外设的外部引脚都是与GPIO复用的。即,一个GPIO,如果可以复用为内置外设的功能引脚,那么当这个GPIO作为内置外设使用时,就叫做复用。
STM32的端口复用映射原理
STM32系列MCU的IO引脚通过一个复用器连接到内置外设或模块。复用器一次只允许一个外设的复用功能(AF)连接到对应的IO口。这样确保同一个IO引脚的外设之间不会发生冲突。端口复用映射示意图
由AFRL[31:0]寄存器和AFRH[31:0]寄存器选择配置引脚的功能AFRL复用功能低位寄存器
对于每一组GPIO,都有对应的一个AFRL寄存器
AFRL复用功能高位寄存器
2. 端口复用配置过程
- 复用功能映射配置
- 系统功能
将IO连接到AF0,然后根据所用功能进行配置:
JTAG/SWD: 在各器件复位后,会将这些引脚指定为专用引脚,可供偏上调试模块立即使用(不收GPIO控制器你控制)
RTC_REFIN:此引脚而配置为输入浮空模式
MCO1, MCO2:这些引脚必须配置为复用功能模式 - GPIO
在GPIOx_MODER寄存器中将所需IO配置为输出或输入 - 外设复用
对于ADC, DAC,在GPIOx_MODER寄存器中将所需IO配置为模拟通道。
对于其他外设:
在GPIOx_MODER,GPIOx_PUPDR,GPIOx_OSPEEDER寄存器,分别选择类型,上拉/下拉以及输出速度
在GPIOx_APRL或在GPIOx_AFRH寄存器中,将IO连接到所需AFx
程序函数角度配置过程
- GPIO端口始终使能
//使能GPIO始终
__HAL_RCC_GPIOA_CLK_ENABLE();
- 复用外设时钟使能
//例如将GPIO复用为串口,则需使能串口时钟
__HAL_RCC_USART1_CLK_ENABLE();//使能串口时钟
- 端口模式配置为复用功能。HAL_GPIO_Init函数
GPIO_Initure.Mode=GPIO_MODE_AF_PP;//复用推挽输出
- 配置GPIOx_APRL或在GPIOx_AFRH寄存器中,将IO连接到所需AFx。函数HAL_GPIO_Init函数
GPIO_Initure.Alternate=GPIO_AF_USART1;//复用为USART1
参考资料:正点原子视频 Thanks^^
【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~
MCU学习笔记_IO引脚复用和映射相关推荐
- 22.IO引脚复用和映射原理与配置
IO引脚复用和映射原理与配置 参考资料: 正点原子STM32开发板: <STM32开发指南-HAL库版本>-4.4 IO引脚复用和映射 STM32F4xx官方资料: <STM32F4 ...
- ARM学习笔记--LPC1788引脚分析
http://zgmgypb.blog.163.com/blog/static/962028192012730104640980/ RM学习笔记--LPC1788引脚分析 一.电源分析 要弄清楚单片机 ...
- S32K144学习笔记:4 信号复用和引脚分配
4.1信号多路复用使多功能共享单片信号 信号复用单元包括来自GPIO的控制信号.端口和PAD接口逻辑.信号复用单元由几个独立的子单元组成,每个子单元处理一个pad的信号多路复用.端口控制块控制模块特定 ...
- MCU学习笔记_STA及PT工具
一.常用命令 1.restore_session restore_session xx/xx/PTsavesessions/func_hsi_ss_1p35v_125c_max ...
- Html入门学习笔记05—相关补充和映射、数字移动
很久很久以前学习html的笔记记录,很随意,但都是自己记录的,希望对需要的人有所帮助. 本文使用word2013编辑并发布 Postbird | There I am , in the world m ...
- stm32学习笔记1:寄存器的映射
#映射 重新取一个名字 ##e.g.令PF输出高电平 让PF口对应地址对应的口(就是PF口)等于0xffff 地址:查找参考文件,地址是40021400偏移14=40021414 *(unsigned ...
- 瑞萨RA系列mcu学习笔记--RTT-pwm驱动
方案1:Studio 2.2.6和使用了RASC3.5下使用pwm驱动 开发环境必须说一下,本人在在开发环境的问题上栽了一个跟头, 使用最新版的RTT Studio 2.2.6和使用了RASC4.0的 ...
- 趣谈Linux操作系统学习笔记:用户态内存映射:如何找到正确的会议室?(第25讲)...
一.mmap原理 在虚拟内存空间那一节,我们知道,每一个进程都有一个列表vm_area_struct,指向虚拟地址空间的不同内存块,这个变量名字叫mmap struct mm_struct {stru ...
- Hibernate视频学习笔记(3)常用映射标签及属性
JTA实现两阶段提交,全局事务,对多个数据库起作用 JDBC是本地事务,只对单一数据库起作用 Hibernate基本映射 实体类 –〉表 实体类中的普通属性 –〉表字段 采用<class> ...
最新文章
- 如何使用Nodejs爬虫看漫画
- The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods install
- pythonmulti函数_python – 用于使用MultiIndex创建pandas系列的语法糖
- Linux启动hbase的shell命令出现警告_系统启动优盘制作图文教程(Windows Linux 等)...
- thymeleaf的属性优先级
- PHP怎么接收字符串,求大神救命!!php接收到是空的字符串
- 计算机应用基础答案高继梅,[Flash游戏制作.doc
- php 获取图片、swf的尺寸大小
- netcore读取json文件_NetCore 对Json文件的读写操作
- 第二集 第一魂环 第十一章
- MySQL高级(一)
- Word怎么删除空白页?这3种方法:适用于所有版本Word!
- 设计师电脑之家赠送U盘版PE网络版WIN10系统安装版
- 信而泰测试仪之 TeleATT软件 模拟 路由性能测试
- 【淘宝API开发系列】获得商品评论 API 返回值说明
- 2020年浙大计算机考研答疑
- JS实现简单的网页新闻无缝滚动
- 2008年中国楼市悄然巨变
- mac os系统截屏快捷键
- 毕业设计 —— 基于STM32手势控制显示系统的设计
热门文章
- VB程序设计教程(第四版)龚沛曾 实验8-2
- PAT 乙级练习 1068 万绿丛中一点红 - 超级详细的思路讲解
- VT虚拟化驱动入门教程
- 再说Mdx的字典文件处理
- Android自定义控件之拓展TextView(ExpandTextView)
- mysql字符集与校对规则设置_MySQL 字符集与校对规则
- wpsword怎样涂黑方框_Excel中如何插入空心小方块和实心小方块的标志?
- 【exp】virtualbox 安装增强功能失败问题解决(vbox虚拟机, Ubuntu)
- 怎么用matlab保存音频文件,Matlab用图片和音频藏文件(续)
- 华域php公司,华域智能DNS系统