STM32F42XX SPI3无输出问题

发布者:SecretWhisper最新更新时间:2019-10-17 来源: eefocus关键字:STM32F42XX  SPI3  无输出问题 手机看文章 扫描二维码
随时随地手机看文章

在做STM32F42XX系列STM32 SPI通讯时,SPI3的SCK引脚时钟无法看到时钟波形,工程是从SPI5的工程改的,初始化配置代码如下:


SPI_HandleTypeDef SPI3_Handler;  //SPI¾ä±ú

 

void SPI3_Init(void)

{

    SPI3_Handler.Instance=SPI3;                         //SP3

    SPI3_Handler.Init.Mode=SPI_MODE_MASTER;             

    SPI3_Handler.Init.Direction=SPI_DIRECTION_2LINES;  

    SPI3_Handler.Init.DataSize=SPI_DATASIZE_16BIT;       

    SPI3_Handler.Init.CLKPolarity=SPI_POLARITY_LOW;    

    SPI3_Handler.Init.CLKPhase=SPI_PHASE_2EDGE;         

    SPI3_Handler.Init.NSS=SPI_NSS_SOFT;                 

    SPI3_Handler.Init.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_256;

    SPI3_Handler.Init.FirstBit=SPI_FIRSTBIT_MSB;        

    SPI3_Handler.Init.TIMode=SPI_TIMODE_DISABLE;        

    SPI3_Handler.Init.CRCCalculation=SPI_CRCCALCULATION_DISABLE;

    SPI3_Handler.Init.CRCPolynomial=7;                  

    HAL_SPI_Init(&SPI3_Handler);

    

    __HAL_SPI_ENABLE(&SPI3_Handler);                    

}

 

 

void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi)

{

    GPIO_InitTypeDef GPIO_Initure;

    

    __HAL_RCC_GPIOC_CLK_ENABLE();       

    __HAL_RCC_SPI3_CLK_ENABLE();        

    

    //PC10,11,12

    GPIO_Initure.Pin=GPIO_PIN_10|GPIO_PIN_11|GPIO_PIN_12;

    GPIO_Initure.Mode=GPIO_MODE_AF_PP;              

    GPIO_Initure.Pull=GPIO_PULLUP;                 

    GPIO_Initure.Speed=GPIO_SPEED_FAST;                  

    GPIO_Initure.Alternate=GPIO_AF5_SPI3;           

    HAL_GPIO_Init(GPIOC,&GPIO_Initure);

}

 

看起来配置没有问题,百思不得其解!


经过查阅资料发现引脚的复用错了,GPIO_AF5_SPI3这里有问题,映射表如下:

细心的可以发现,有GPIO_AF5_SPI3、GPIO_AF6_SPI3两种映射,到底使用哪一种才正确呢?查阅STM32F4XX中文手册,找到180页GPIO映射表,如下:

很明显SPI3使用的是AF6,所以此处改为GPIO_AF6_SPI3,这样就可以正确的输出了!

关键字:STM32F42XX  SPI3  无输出问题 引用地址:STM32F42XX SPI3无输出问题

上一篇:STM32F103/302 SPI3 接口使用例程
下一篇:STM32的SPI1、SPI2、SPI3初始化及RF1101的应用(标准库与HAL库)

推荐阅读最新更新时间:2024-11-12 19:29

使用STM32CubeMX,生成STM32F103ZE SPI3 HAL 工程
1,选择芯片型号为STM32F103ZET6,开始工程,引脚配置如下: 主要是RCC,SPI3,和SYS三个模块 2,时钟配置,可按下图进行: 3,SPI3配置,如下图,配完这一步其它可以不管,直接生成工程。 4,生成工程,打开工程 手动输入红框中内容。 运行:成功输出波形。
[单片机]
使用STM32CubeMX,生成STM32F103ZE <font color='red'>SPI3</font> HAL 工程
STM32F105VC SPI3的重映射使用
SPI3的重映射使用调试 芯片:STM32F105VC KEIL库:3.5 2017/08/26: 使用SPI3操作FLASH,但是用示波器查看无SCK输出,有MOSI输出,SCK一直为低。 重映射函数如下,未发现问题: //使能被重新映射到的I/O端口时钟 RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); //使能被重新映射的外设时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE); //使能AFIO功能的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved