OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 15632|回复: 12

如何配置IO的重映射

[复制链接]

41

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
342
金钱
342
注册时间
2011-5-3
在线时间
25 小时
发表于 2011-5-26 13:54:26 | 显示全部楼层 |阅读模式
请教各位,如何配置IO端口的重映射,并个简单例子,谢谢
常常被模仿,从未被超越
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-5-26 13:57:45 | 显示全部楼层
很简单的.设置重映射寄存器就可以了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

41

主题

93

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
342
金钱
342
注册时间
2011-5-3
在线时间
25 小时
 楼主| 发表于 2011-5-26 14:08:28 | 显示全部楼层
举个例子,重映射
常常被模仿,从未被超越
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2011-5-26 20:16:59 | 显示全部楼层
给你豪华版的代码,提前看看.有复用的.
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数
void WM_Init(u16 arr,u16 psc)
{    
//此部分需手动修改IO口设置
RCC->APB1ENR|=1<<1;  //TIM3时钟使能    
RCC->APB2ENR|=1<<3;     //使能PORTB时钟
   
RCC->APB2ENR|=1<<0;     //开启辅助时钟    
AFIO->MAPR&=0XFFFFF3FF; //清除MAPR的[11:10]
AFIO->MAPR|=1<<11;      //部分重映像,TIM3_CH2->B5
  
GPIOB->CRL&=0XFF0FFFFF;//PB5输出
GPIOB->CRL|=0X00B00000;//复用功能输出    
GPIOB->ODR|=1<<5;//PA7上拉

TIM3->ARR=arr;//设定计数器自动重装值 
TIM3->SC=psc;//预分频器不分频

TIM3->CCMR1|=7<<12;  //CH2 WM2模式  
TIM3->CCMR1|=1<<11; //CH2预装载使能    

TIM3->CCER|=1<<4;   //OC2 输出使能    

TIM3->CR1=0x8000;   //ARPE使能 
TIM3->CR1|=0x01;    //使能定时器3    
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2012-9-20
在线时间
19 小时
发表于 2012-10-22 09:41:22 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
重映射根据例子看是不是将复用功能映射到指定引脚上?
00:没有重映像(CH1/PA6,CH2/PA7,CH3/PB0,CH4/PB1); 
01:未用组合;
10:部分映像(CH1/PB4,CH2/PB5,CH3/PB0,CH4/PB1); 
11:完全映像(CH1/PC6,CH2/PC7,CH3/PC8,CH4/PC9)
三种映射方式,只有这三种可选?
比如我想把PB4改为PC2,这样就不行了吧?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-10-22 10:34:13 | 显示全部楼层
回复【5楼】eternity86:
---------------------------------
重映射不包括普通IO功能的映射。
重映射只是针对复用功能,比如TIM,UART这些。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

41

帖子

0

精华

初级会员

Rank: 2

积分
179
金钱
179
注册时间
2012-9-20
在线时间
19 小时
发表于 2012-10-22 13:50:33 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
谢谢原子哥
回复 支持 反对

使用道具 举报

12

主题

126

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
281
金钱
281
注册时间
2013-1-5
在线时间
22 小时
发表于 2013-6-24 10:43:02 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
原子哥,设置了重映射USART2是不是对所有的管脚(RX、TX、CK、CTS、RTS)都同时生效呢?如果想只应用UXART2的TX和RX重映射,而把USART的CK、CTS、RTS当作普通的IO来使用,请问可以实现吗?应该如何设置呢?
天道酬勤
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-6-24 16:19:18 | 显示全部楼层
这个看手册!
手册有引脚描述.没写的就没有.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-5-30
在线时间
0 小时
发表于 2014-5-30 15:50:28 | 显示全部楼层
Can 重映射到PB口,就是不成功,麻烦大家帮我看一下,谢谢!
//////////////////////////////////////////////////////////////////////////////////  
//芯片型号:STM32F10C8T6
//CAN端口:PB8 :CAN Rx(Pin45)        B9:CAN Tx(Pin46) 
//////////////////////////////////////////////////////////////////////////////////
u8 CAN_Mode_Init(u8 tsjw,u8 tbs2,u8 tbs1,u16 brp,u8 mode)
{
u16 i=0;
  if(tsjw==0||tbs2==0||tbs1==0||brp==0)return 1;
tsjw-=1;//先减去1.再用于设置
tbs2-=1;
tbs1-=1;
brp-=1;


RCC->APB2ENR|=1<<3;    //使能PORTB时钟 //RCC->APB2ENR|=1<<2;    //使能PORTA时钟

GPIOB->CRH&=0XFFFFFF00;//设置位先清0  //GPIOA->CRH&=0XFFF00FFF; //
GPIOB->CRH|=0X000000B8;//PB8 RX(输入上拉),PB9  TX复用功能推挽输出//GPIOA->CRH|=0X000B8000;//PA11 RX,PA12 TX推挽输出     
    GPIOB->ODR|=3<<8;//端口位清0或设置 //GPIOA->ODR|=3<<11;


AFIO->MAPR&=0XFFFF9FFF; //第14位,13位是CAN-remap    10:CANRX映像到PB8,CANTX映像到PB9  00是映射到PA口
AFIO->MAPR|=0X00004000; // 10:CANRX映像到PB8  CANTX映像到PB9
    
RCC->APB1ENR|=1<<25;//使能CAN时钟 CAN使用的是APB1的时钟(max:36M)
RCC->APB2ENR|=0X00000001; //第1位是AFIO EN (时钟不知道用上一行还是这行)

CAN->MCR=0x0000; //退出睡眠模式(同时设置所有位为0)
CAN->MCR|=1<<0; //请求CAN进入初始化模式
while((CAN->MSR&1<<0)==0)
{
i++;
if(i>100)return 2;//进入初始化模式失败
}
CAN->MCR|=0<<7; //非时间触发通信模式
CAN->MCR|=0<<6; //软件自动离线管理
CAN->MCR|=0<<5; //睡眠模式通过软件唤醒(清除CAN->MCR的SLEEP位)
CAN->MCR|=1<<4; //禁止报文自动传送
CAN->MCR|=0<<3; //报文不锁定,新的覆盖旧的
CAN->MCR|=0<<2; //优先级由报文标识符决定
CAN->BTR=0x00000000;//清除原来的设置.
CAN->BTR|=mode<<30; //模式设置 0,普通模式;1,回环模式;
CAN->BTR|=tsjw<<24; //重新同步跳跃宽度(Tsjw)为tsjw+1个时间单位
CAN->BTR|=tbs2<<20; //Tbs2=tbs2+1个时间单位
CAN->BTR|=tbs1<<16; //Tbs1=tbs1+1个时间单位
CAN->BTR|=brp<<0;   //分频系数(Fdiv)为brp+1
//波特率:Fpclk1/((Tbs1+Tbs2+1)*Fdiv)
CAN->MCR&=~(1<<0); //请求CAN退出初始化模式
while((CAN->MSR&1<<0)==1)
{
i++;
if(i>0XFFF0)return 3;//退出初始化模式失败
}
//过滤器初始化
CAN->FMR|=1<<0; //过滤器组工作在初始化模式
CAN->FA1R&=~(1<<0); //过滤器0不激活
CAN->FS1R|=1<<0;  //过滤器位宽为32位.
CAN->FM1R|=0<<0; //过滤器0工作在标识符屏蔽位模式
CAN->FFA1R|=0<<0; //过滤器0关联到FIFO0
CAN->sFilterRegister[0].FR1=0X00000000;//32位ID
CAN->sFilterRegister[0].FR2=0X00000000;//32位MASK
CAN->FA1R|=1<<0; //激活过滤器0
CAN->FMR&=0<<0; //过滤器组进入正常模式

#if CAN_RX0_INT_ENABLE
  //使用中断接收
CAN->IER|=1<<1; //FIFO0消息挂号中断允许.     
MY_NVIC_Init(1,0,USB_LP_CAN_RX0_IRQChannel,2);//组2
#endif
return 0;
}
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-31 01:14:13 | 显示全部楼层
回复【10楼】120304725:
---------------------------------
先开复用时钟,再设置MAPR寄存器。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

9

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2014-5-30
在线时间
0 小时
发表于 2014-5-31 08:40:05 | 显示全部楼层
看了很多帖子,大家都称呼你原子哥,那我也谢谢原子哥,先更改代码测试一下。谢谢!
回复 支持 反对

使用道具 举报

28

主题

140

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
461
金钱
461
注册时间
2013-10-18
在线时间
72 小时
发表于 2015-12-4 09:31:13 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
合适的说的根据寄存器AFIO里面的内容来说。 比如PD0、1(32\48\64)管脚的可以PD0、1映射到外部晶振引脚上
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 21:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表