历史上的今天
返回首页

历史上的今天

今天是:2024年12月25日(星期三)

正在发生

2019年12月25日 | STM32 端口复用&重映射(USART Remap)

2019-12-25 来源:eefocus

下面跟大家说一下STM32单片机的端口重映射,这里是以USART1的重映射为例.


STM32上有很多I/O口,也有很多的内置外设想I2C,ADC,ISP,USART等,为了节省引出管脚,这些内置外设基本上是与I/O口共用管脚的,也就是I/O管脚的复用功能。但是STM32还有一特别之处就是:很多复用内置的外设的I/O引脚可以通过重映射功能,从不同的I/O管脚引出,即复用功能的引脚是可通过程序改变的. 

三个红框交汇处.STM32F103VCT6 这个CPU的USART1接的是PB6/PB7 但是上电初始化后默认功能并非是USART1.所以想要用串口功能 .必须用端口重映射..


大家知道,STM32的单片机每个功能模块有自己的时钟系统,所以要想要调用STM32单片机的功能模块时 必须先配置对应时钟,然后才能去操作相应的功能模块.端口重映射也一样.如图示:

重映射步骤为:


1.打开重映射时钟和USART重映射后的I/O口引脚时钟, 


RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);


2.I/O口重映射开启.


GPIO_PinRemapConfig(GPIO_Remap_USART1,ENABLE);


3.配制重映射引脚, 这里只需配置重映射后的I/O,原来的不需要去配置.


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOB,&GPIO_InitStructure);


只需要这三步,串口就可以正常使用了,简单吧?  但是我纠结了大半个小时才搞定的,好多事情都是说起来容易做起来难的,希望我以后多多进步.不要眼高手低,嗯我正朝这个方向前进.


最后总结一下:


简单的说 STM32的 io 有3个功能一个是默认的 一个是复用 一个是重映射功能(这个其实也属于复用)


如果配置成复用 则将使用第2个功能 如果配置成复用 同时 相应的重映射配置了 则将使用第3个功能

推荐阅读

史海拾趣

Datakey Electronics公司的发展小趣事

Datakey Electronics公司自创立之初,就深知技术创新的重要性。在面临激烈市场竞争的情况下,公司投入大量资源进行研发,成功推出了一款具有革命性意义的数据存储产品。这款产品以其高可靠性、大容量和易用性迅速赢得了市场的认可,使Datakey Electronics在数据存储领域崭露头角。

Carroll & Meynell Transformers Ltd公司的发展小趣事

在电子行业的初期,Carroll & Meynell Transformers Ltd公司以其卓越的技术创新能力脱颖而出。公司研发团队不断突破传统变压器的设计局限,推出了一系列高效、稳定的变压器产品。这些产品不仅满足了当时市场对电力传输和分配的基本需求,还以其卓越的性能赢得了客户的广泛认可。随着市场需求的不断增长,公司逐渐扩大了生产规模,成为了电子行业中的佼佼者。

AntennaHome公司的发展小趣事

为了进一步提升品牌影响力和市场知名度,AntennaHome公司积极参与国际电子行业的各大展会。在展会上,公司展示了最新的天线技术和产品,吸引了众多国内外客户的关注。通过与客户的深入交流,公司不仅收获了宝贵的市场信息和合作机会,还进一步提升了品牌在行业内的地位。

格莱尔(GLE)公司的发展小趣事

格莱尔积极响应国家“双碳”政策,将绿色生产理念贯穿于企业发展的全过程。公司不仅实现了产品的无铅化生产,还注重节能减排和资源循环利用。通过优化生产工艺、引进环保设备等措施,格莱尔有效降低了生产过程中的能耗和排放,为企业的可持续发展奠定了坚实的基础。

BEI Sensors公司的发展小趣事

Beckhoff Automation GmbH公司成立于1953年,总部设立在德国Verl市。公司自创立之初,便致力于工业自动化产品的研发与生产。在创始人的领导下,公司逐步建立起一套完整的工业自动化产品体系,包括工业PC、现场总线模块、驱动产品等。凭借卓越的产品质量和创新的技术理念,Beckhoff在行业内逐渐崭露头角,赢得了客户的广泛认可。

FUJITSU(富士通)公司的发展小趣事

自上世纪80年代起,Beckhoff便将基于PC的自动化新技术作为公司的发展理念。通过不断研发和创新,公司成功地将工业PC、现场总线模块、驱动产品和控制软件等整合为一套完整的、相互兼容的控制系统。这一创新为工控领域带来了革命性的变革,使得工业自动化系统更加开放、灵活和高效。

问答坊 | AI 解惑

请蓝眼狐大人!进来给检查一下!

电子锁画好了PCB图  但不知道是否可行  请蓝眼狐大人给看看  有问题我好立刻改 没问题我就制板了!!!谢谢!!…

查看全部问答>

硬件微分电路

实用微分电路对于高频信号检测比较敏感,特别适合于检测脉冲信号;但对于低频信号微分作用效果就不那么理想。我想请问诸位高手,如何精确的实现对低频信号的微分????(需要检测低频信号频率大概是50HZ。)…

查看全部问答>

读取8253计数器的问题?

我打算通过扩展定时器的方法测出多路PWM信号的占空比,利用GATE门控位,当GATE低电平的时候读取外部定时器8253计数器的值。可是我怎么也读不出来值,当我使RD位有效时,读的计数器的值也总是不变是个固定值,大家看看我的程序有什么问题??怎么改 ...…

查看全部问答>

通过PFILE_OBJECT的DeviceObject如何修改盘符??十万火急!

如题: UNICODE_STRING usDosName; PFILE_OBJECT pFileObject = IrpSp->fileObject; 使用RtlVolumeDeviceToDosName(pFileObject->DeviceObject,&usDosName) 可以得到usDosName的盘符,如C: 问题是如何修改C:为 J:,实现文件的跨盘存储 ...…

查看全部问答>

【MSP430共享】IAR+kegen++MSP430_V5.3

IAR+kegen++MSP430_V5.3,很常用的软件,也是430使用率很高的软件!!! [ 本帖最后由 鑫海宝贝 于 2011-10-12 09:37 编辑 ]…

查看全部问答>

uCOS-II移植到Cortex-M4问题

今天把uCOS-II移植到Cortex-M4上面,由于M4和M3内核相似,M3的程序直接拿到M4上面就可以用,我用的是KeilMDK V4.23,硬件是STM32的stm32f4discovery开发套件需要注意的只有一点,不要选择使用FPU,就没有问题了。虽然uCOS-II是不支持浮点运算的。但 ...…

查看全部问答>

g组 电阻桥测电流(简化版)

本帖最后由 paulhyde 于 2014-9-15 03:33 编辑 电阻桥测电流(简化版)    …

查看全部问答>

用CubeSuite+下载程序下载不进去???

使用78K0R的78f1213_44脚  图如下…

查看全部问答>

X射线探测器A121

有人用过X射线探测器A121,急需帮助…

查看全部问答>