注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

FY

Johnson 's Blog

 
 
 

日志

 
 

STM32重映射(PinRemap)的使用,注意  

2016-07-09 09:15:01|  分类: STM32 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://www.2cto.com/os/201512/452804.html

STM32重映射,内容和细节稍后补充,这里只说几个注意点,花了我一晚上的时间调试终于找到问题所在了。。。
 
芯片: STM32f107vct6
 
晶振: 25M
 
通过分频器与锁相环,使系统时钟为72M
 
背景: SPI3的重映射使用
 
一、
 
重映射函数原型:
 
void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState)
STM32f107vct6不是FPGA,重映射是固定的,无法自行指定,要查表,看看映射到了哪
 
比如SPI3,查询datasheet(好好利用ctrl+f)后可知
 
Alternate functionSPI3_REMAP = 0 SPI3_REMAP = 1
SPI3_NSS PA15PA4
SPI3_SCK PB3PC10
SPI3_MISOPB4PC11
SPI3_MOSIPB5PC12
 









二、
 
非常重要!remap一定要在时钟使能之后配置,否则无效
 
神奇了真是
 
重映射步骤:
(1)使能被重新映射到的I/O端口时钟
RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
(2)使能被重新映射的外设时钟
RCC_APB2PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE);
(3)使能AFIO功能的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
(4)进行重映射
 
GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);
 
注:(1)(2)(3)顺序可换,
 
或者,在APB2总线上的设备,用 或( | ) 一起进行时钟使能,
 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO, ENABLE);
 
但一定要在(4)之前。否则remap无法配置成功
 
GPIO的配置虽然可以先GPIO再RCC。。为了统一格式,一律先开时钟再配置
  评论这张
 
阅读(15)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017