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

关于stm32f4的usb和uart6复用问题

abe22cb9e177dee6 2018-09-17 浏览量:1447

具体问题如下:

1,先将stm32f4的PA11,PA12复用称uart,然后deinit,在复用称usb,这样是没有问题的。

2,按照以上相反的顺序,先复用成usb,然后deinit,在复用成uart6或普通GPIO,将会失败,uart6无法输出数据,gpio电平无法改变。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 还要把USB的时钟关了吧,重新配置GPIO或是串口的时钟,再配置复用引脚,再进行外设的配置,再使用试试
    • 发布于 2018-10-13
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:9
  • 复用时候不能只更改IO口,还有总线和时钟系统需要修改。

    比如deinit了USB时候有没有关闭USB时钟和总线外设?或者新的外设系统时钟或者总线有没有打开?

    • 发布于2018-09-17
    • 举报
    • 评论 0
    • 1
    • 0

  • 是不是顺序有问题,配置对不对呢
    • 发布于2018-09-18
    • 举报
    • 评论 0
    • 0
    • 0

  • deinit的时候相应的时钟,中断都需要deinit的,如果用的是HAL库,那可以直接调它的那个MSP deinit的函数
    • 发布于2018-09-20
    • 举报
    • 评论 0
    • 0
    • 0

  • 反过来,需要重新配置相应的时钟
    • 发布于2018-09-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 这两个复用的话都需要初始你的时钟,检查一下对应的配置
    • 发布于2018-09-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 既然两个外设的引脚是冲突的,那你是不是应该考虑下使用别的外设来代替UART6,或者是使用别的UART6的映射引脚呢?

    • 发布于2018-09-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 这种情况要检查一下你的IO引脚是不是能复用两个功能,首先要你的引脚支持才可以使用的
    • 发布于2018-10-11
    • 举报
    • 评论 0
    • 0
    • 0

  • usb的时钟没有关闭的话相关引脚是不能被用作GPIO的
    • 发布于2018-10-18
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

关于stm32f4的usb和uart6复用问题