stm32f103的usart1的端口重映射设置总是报错

2019-07-14 17:56发布

为了使用这个端口我这样设置,AFIO_MAPR|=1<<2;  
但是
总是报错                             Error[Pe020]: identifier "AFIO_MAPR" is undefined

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
报纸弟弟麦花
1楼-- · 2019-07-15 20:08
 精彩回答 2  元偷偷看……
kang322
2楼-- · 2019-07-16 01:36
报纸弟弟麦花 发表于 2018-9-10 09:42
单片机不一样?你的不是103系列吗?

其实都是一样的,STM32F103C8和STM32F103RB都差不多
ctwewer
3楼-- · 2019-07-16 05:19
本帖最后由 wenyangzeng 于 2014-12-30 22:46 编辑

举个实例给你参考:
AFIO->MAPR   = 0X00000800;                            //定时器3  CCR2映像到PB5然后你参考手册应该能设置成功
kghfh
4楼-- · 2019-07-16 08:40
重映射步骤为:

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个功能

通常一个口的 复用+重映射有好多 不止两个 这时候就看你使能哪个设备了(哪个被使能就用哪个)

开复用 + 使能设备+ 是否重映射就可以决定这个io口到底使用哪个功能
redsworm
5楼-- · 2019-07-16 14:16
不知都楼主用的什么版本的库,一直用3.5的,没发现有这个结构体...
嘻嘻爱哈哈
6楼-- · 2019-07-16 16:53
 精彩回答 2  元偷偷看……

一周热门 更多>