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

上传人:白大夫 文档编号:3273703 上传时间:2019-08-07 格式:DOC 页数:3 大小:17KB
返回 下载 相关 举报
STM32单片机的重映射与地址映射的使用方法及步骤.doc_第1页
第1页 / 共3页
亲,该文档总共3页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《STM32单片机的重映射与地址映射的使用方法及步骤.doc》由会员分享,可在线阅读,更多相关《STM32单片机的重映射与地址映射的使用方法及步骤.doc(3页珍藏版)》请在三一文库上搜索。

1、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

2、.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_Pin=GPIO_Pin_7;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOB,12345678这样就可以了,很简单。地址映射对于地址映射是在查重映射时发现的,感觉ST的库很机智,就记录下来。首先看一下M3 存

3、储器映射我们的操作就在这512MB的地址进行。在LED灯的程序中,存在宏定义:#defineGPIOC_BASE(APB2PERIPH_BASE+0x1000)#defineAPB2PERIPH_BASE(PERIPH_BASE+0x10000)#definePERIPH_BASE(uint32_t)0x40000000)123分析:PERIPH_BASE 外设基地址:因为STM32是32位的,宏展开为0x40000000并转化为 uint32_tAPB2PERIPH_BASE 总线基地址:宏展开为PERIPH_BASE加上偏移地址 0x10000当然存在下面的宏定义:#defineAPB1P

4、ERIPH_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中:#defineGPI

5、OA(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非常方便,巧妙。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1