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