STM32单片机的重映射与地址映射的使用方法及步骤

重映射
stm32中对于一些端口的外设已经被其他引脚所使用,这是就需要用端口重映射来解决了,很方便。
以usart1为例
重映射的步骤为:
打开重映射时钟和usart重映射后的i/o口引脚时钟,
rcc_apb2periphclockcmd(rcc_apb2periph_gpiob | rcc_apb2periph_afio,enable);
i/o口重映射开启。
gpio_pinremapconfig(gpio_remap_usart1,enable);
配制重映射引脚, 这里只需配置重映射后的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);12345678
这样就可以了,很简单。
地址映射
对于地址映射是在查重映射时发现的,感觉st的库很机智,就记录下来。
首先看一下m3 存储器映射
我们的操作就在这512mb的地址进行。
在led灯的程序中,存在宏定义:
#definegpioc_base(apb2periph_base+0x1000)#defineapb2periph_base(periph_base+0x10000)#defineperiph_base((uint32_t)0x40000000)123
分析:
periph_base 外设基地址:因为stm32是32位的,宏展开为0x40000000并转化为 uint32_t
apb2periph_base 总线基地址:宏展开为periph_base加上偏移地址 0x10000
当然存在下面的宏定义:
#defineapb1periph_baseperiph_base#definegpioa_base(apb2periph_base+0x0800)#definegpiob_base(apb2periph_base+0x0c00)#definegpioc_base(apb2periph_base+0x1000)#definegpiod_base(apb2periph_base+0x1400)12345
而对于寄存器中
地址为: gpioc_base +0x04
我想可能会存在
#define gpioc_crh (gpioc_base + 0x04)
但st库采用了更加巧妙的方法:
stm32f10x.h中:
#definegpioa((gpio_typedef*)gpioa_base)#definegpiob((gpio_typedef*)gpiob_base)#definegpioc((gpio_typedef*)gpioc_base)123
而gpio_typedef 的定义:
typedefstruct{__iouint32_tcrl;__iouint32_tcrh;__iouint32_tidr;__iouint32_todr;__iouint32_tbsrr;__iouint32_tbrr;__iouint32_tlckr;}gpio_typedef;12345678910
通过结构体非常机智的定义了。
引用一张图来说明:
这样当我们想进行地址映射时,只需要这样定义:
gpio_typedef*gpiox;//定义一个gpio_typedef型结构体指针gpioxgpiox=gpioa;//把指针地址设置为宏gpioa地址gpiox-》crl=0xffffffff;//通过指针访问并修改gpioa_crl寄存器123
非常方便,巧妙。

谷歌眼疾诊断AI比人类医生更准确
曝iPhone11支持反向无线充电 但其软件屏蔽反向充电功能
以太坊博彩的基础知识及相关网站
汉帛集团电子商务运营中心称年产值达10亿
木质扬声器diy教程
STM32单片机的重映射与地址映射的使用方法及步骤
台积电、世界先进不太可能下调8英寸代工报价
芯片制造全过程是怎样的
WBRU模组的特性及应用领域
Linux多进程编程
机器学习中低精度计算产生高准确度结果的解决方案
【新专利介绍】如何在智能水表运行期间进行核查
全球首个实现了来自多厂商的5G设备之间的载波聚合
谷歌开发者大会:Google 中国开发者网站上线!谷歌重返中国市场?
世强电讯授权代理Agilent新型2000X 和3000X系列示波器
NEC:通信标准仍是抄表行业一大挑战
危化品气瓶如何用RFID加强安全性
如何在单片机上实现开根号
基片集成波导转换器的设计与仿真
随着互联网的发展,将开启服装智慧新零售