STM32的SPI1引脚重映射.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32的SPI1引脚重映射

STM32的SPI1引脚重映射初次使用STM32有些不太明白,此次调试经验奉献出来与大家分享! 系统:STM32?+?SD?+?FATFS STM32与SD卡的连接如下定义,PB口 #define?SD_SCK???GPIO_Pin_3? #define?SD_MISO??GPIO_Pin_4? #define?SD_MOSI??GPIO_Pin_5? #define?SD_CS????GPIO_Pin_7? 我想使用SPI1并重映射引脚使用时注意的事项如下: 1.使能PB0时钟?RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); 2.使能AFIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,?ENABLE); 3.使能SPI1时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1?,?ENABLE); 4.禁用JTAG时钟复用?GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable?,?ENABLE);? 5.SPI1引脚重映射?GPIO_PinRemapConfig(GPIO_Remap_SPI1,ENABLE); 接着初始化GPIO和SPI1即可,如: void?SpiOpen(void) { ??GPIO_InitTypeDef??GPIO_InitStructure; ??SPI_InitTypeDef???SPI_InitStructure; ??/*?Configure?SPI1?pins:?SCKand?MOSI?*/ ??GPIO_InitStructure.GPIO_Pin?=?SD_MOSI|SD_SCK|SD_MISO; ??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz; ??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP; ??GPIO_Init(GPIOB,?GPIO_InitStructure); ??/*?Configure?PB7?pin:?CS?pin?*/ ??GPIO_InitStructure.GPIO_Pin?=?SD_CS; ??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz; ??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP; ??GPIO_Init(GPIOB,?GPIO_InitStructure); ??GPIO_SetBits(GPIOB,SD_CS); ??/*?SPI1?Config?*/ ??SPI_InitStructure.SPI_Direction?=?SPI_Direction_2Lines_FullDuplex; ??SPI_InitStructure.SPI_Mode?=?SPI_Mode_Master; ??SPI_InitStructure.SPI_DataSize?=?SPI_DataSize_8b; ??SPI_InitStructure.SPI_CPOL?=?SPI_CPOL_High; ??SPI_InitStructure.SPI_CPHA?=?SPI_CPHA_2Edge; ??SPI_InitStructure.SPI_NSS?=?SPI_NSS_Soft; ??SPI_InitStructure.SPI_BaudRatePrescaler?=?SPI_BaudRatePrescaler_256; ??SPI_InitStructure.SPI_FirstBit?=?SPI_FirstBit_MSB; ??SPI_InitStructure.SPI_CRCPolynomial?=?7; ??SPI_Init(SPI1,?SPI_InitStructure); ??/*?SPI1?enable?*/ ??SPI_Cmd(SPI1,?ENABLE); } 可是这一切完成的时候结果却与想象的不同,无法在SD卡内创建文件,找一个晚上没有结果 不得已采用另一种方法:软件模拟SPI测试了一下, 结果另人出呼意料,一次搞定,没有任何问题,但为了效率还是希望使用硬SPI口,于是从引脚重映射上寻找原因 又费了一晚上无果? 第三个晚上:经过无数次的?改动?+?测试?终于OK了,问题出在哪里了呢?? 原来SD卡的初始时钟不一定是400KHz就行 ST标准库初始化系统时APB2时钟为72MHz,经过256分频波特率约等于 280KHz (SPI_InitStructure.

文档评论(0)

almm118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档