• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32f407的串口配置问题

我是假管 2018-10-23 浏览量:1236

最近在使用stm32f407芯片,在使用串口的时候,发现gpio口的配置结构体中有个5个成员,分别是:GPIO_Pin、GPIO_Mode、GPIO_Speed、GPIO_OType、GPIO_PuPd。这个5 个成员分别是:

所要配置的引脚、工作模式、工作的速度、引脚的输出类型、上拉下拉电阻的配置。那么我要配置串口一的TX和RX引脚的时候,引脚工作模式中配置为GPIO_Mode_AF(复用功能)后,只需要再配置GPIO_Speed和GPIO_PuPd就可以了吧,这个输出类型是不是不用配置。输出类型根据手册说是分开漏模式和推挽模式。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案

其他答案 数量:8
  • 我这个是配USART2的,可以参考一下

        /**USART2 GPIO Configuration   
        PA2     ------> USART2_TX
        PA3     ------> USART2_RX
        */
        GPIO_InitStruct.Pin = GPIO_PIN_2;
        GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
        HAL_GPIO_Init(GPIOA &GPIO_InitStruct);

        GPIO_InitStruct.Pin = GPIO_PIN_3;
        GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
        GPIO_InitStruct.Pull = GPIO_NOPULL;
        HAL_GPIO_Init(GPIOA &GPIO_InitStruct);

    随便安利一下CubeMX,然后你就不用操心这些琐碎的初始化工作了。

    • 发布于2018-10-23
    • 举报
    • 评论 2
    • 1
    • 0
FEItwo 回复了 Spirit :初始化不是默认的么 回复
Spirit 回复了 FEItwo :不明白您说的默认是什么意思? 回复

  • 最好是配一下,例程上都有,反正配一下也不耗多少资源
    • 发布于2018-10-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 请参考

        /**USART2 GPIO Configuration   
        PA2     ------> USART2_TX
        PA3     ------> USART2_RX
        */
        GPIO_InitStruct.Pin = GPIO_PIN_2;
        GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
        HAL_GPIO_Init(GPIOA &GPIO_InitStruct);

        GPIO_InitStruct.Pin = GPIO_PIN_3;
        GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
        GPIO_InitStruct.Pull = GPIO_NOPULL;
        HAL_GPIO_Init(GPIOA &GPIO_InitStruct);

    • 发布于2018-10-23
    • 举报
    • 评论 2
    • 0
    • 0
我是假管 回复了 Spirit :你确定是这样配置的么??你这个是什么芯片的。你的 GPIO_PIN_2是复用模式,怎么GPIO_PIN_3却是输入模式???? 回复
Spirit 回复了 Spirit :确定。这个配置代码是CubeMX软件自动生成的,完全可靠。 回复

  • hal 库里面没有你说的 type ,就这么多成员,配置时候也就是这么多成员:

    61.png

    62.png


    • 发布于2018-10-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 输出是要根据你的外设的类型进行选择的,并不是通用的
    • 发布于2018-10-24
    • 举报
    • 评论 0
    • 0
    • 0

  • 输出模式就推挽和开漏两种,只有I2C的SDA才需要开漏模式,其余绝大部分场合都是用推挽模式。

    • 发布于2018-10-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个输出,如果没有特别的需要,都可以配置为推挽输出的
    • 发布于2018-11-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个可以参考一下正点原子教程,里面有串口的章节
    • 发布于2018-11-23
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

stm32f407的串口配置问题