STM32CubeMX项目SPI2 CLK信号丢失问题

  前两天发现STM32CubeMX项目SPI2 CLK信号丢失问题
 

1、使用引脚
    PB2     ------> SPI2_MISO
    PB11     ------> SPI2_MOSI
    PB12     ------> SPI2_NSS
    PB13     ------> SPI2_SCK

2、生成GPIO的代码如下:
 

    /* USER CODE BEGIN SPI2_MspInit 0 */

    /* USER CODE END SPI2_MspInit 0 */
    /* Peripheral clock enable */
    __HAL_RCC_SPI2_CLK_ENABLE();

    __HAL_RCC_GPIOB_CLK_ENABLE();
    /**SPI2 GPIO Configuration
    PB2     ------> SPI2_MISO
    PB11     ------> SPI2_MOSI
    PB12     ------> SPI2_NSS
    PB13     ------> SPI2_SCK
    */
    GPIO_InitStruct.Pin = GPIO_PIN_13;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF1_SPI2;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_11;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF0_SPI2;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_12;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_PULLUP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF0_SPI2;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

   /* USER CODE BEGIN SPI2_MspInit 1 */

   /* USER CODE END SPI2_MspInit 1 */

2、错误原因

经检查,在配置PB13     ------> SPI2_SCK时钟引脚的时候,复用功能使用错了。

PB13 并没有GPIO_AF1_SPI2这种复用功能,应该将其改为 GPIO_InitStruct.Alternate = GPIO_AF0_SPI2;

手册中的复用功能:

3、使用STM32CubeMX版本如下

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TM1640是一款常用的串行LED控制芯片,可以通过串口通信与STM32微控制器进行连接和通信。TM1640具有多个控制引脚,包括数据线(DIN)、时钟线(CLK)和使能线(EN)等,通过这些引脚可以实现对LED显示屏的控制。 STM32CubeMX是STMicroelectronics公司推出的一款用于STM32微控制器的软件工具,用于快速、简便地生成基于STM32的工程代码。它提供了一个直观的图形界面,可以通过拖拽和配置参数来生成初始化代码和配置文件。通过STM32CubeMX,开发者可以轻松地选择所需的外设和资源,并生成各种功能的代码框架,使得STM32的开发变得更加简洁和高效。 当需要将TM1640与STM32微控制器进行集成时,可以使用STM32CubeMX来生成初始化代码。首先,通过STM32CubeMX选择所需的STM32微控制器型号,并配置所需的外设,比如GPIO和SPI等。然后,将TM1640的引脚连接到相应的STM32引脚上,并配置SPI接口的参数,如数据位数、时钟极性和相位等。最后,点击生成代码按钮,STM32CubeMX将会根据所做的配置生成初始化代码和相关的配置文件。 使用STM32CubeMX生成的初始化代码,开发者可以根据具体需求进行修改和扩展。比如,可以通过调用相关的函数来发送数据到TM1640芯片,控制LED显示的亮灭和亮度等。在开发过程中,可以根据TM1640的相关文档和使用手册来了解其具体的通信协议和功能,以便正确地使用和控制TM1640芯片。 总之,TM1640与STM32CubeMX的结合能够帮助开发者快速、方便地实现对TM1640的控制和集成,提高开发效率和便捷性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值