micoccd 发表于 2023-2-24 15:45

MM32单片机UART不能使用问题

UART1默认RX/TX引脚为PA9和PA10,https://images2018.cnblogs.com/blog/1242795/201805/1242795-20180521173643085-452914342.png现重定义到PB6和PB7,
修改后程序如下,使能UART1和GPIOB时钟,初始化IO、中断、UART相关配置,使能串口中断。修改引脚使用重定义需要使用remap寄存器,需要使能GPIO_Remap_UART1,
因此要调用
GPIO_PinRemapConfig(GPIO_Remap_UART1,ENABLE);
将UART1管脚重映射。
而使用重映射功能需要使能AFIO时钟,可调用RCC_APB2PeriphClockCmd函数使能RCC_APB2Periph_AFIO,    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);


Undshing 发表于 2023-3-9 20:14

重定义RX/TX引脚解决了,但是是什么原因引起的呢?

Betty1299 发表于 2023-3-14 14:09

重定义属实需要将复用时钟,不然是不能重定义的

AdaMaYun 发表于 2023-3-14 15:22

是不是省略了修改后的代码?

Carina卡 发表于 2023-3-14 15:42

Remap这个操作是干啥的?

Estelle1999 发表于 2023-3-14 16:47

其实有些感觉没必要重定义,麻烦的很

Charlene沙 发表于 2023-3-14 17:52

之前我就有一次重定义之后没有开启AFIO时钟,怎么查程序怎么有问题,难受

Charlene沙 发表于 2023-3-14 20:40

一般我重新定义都没有开启remap的啊,是因为这寄存器是串口必须用的?

Betty996 发表于 2023-3-15 07:08

还行,重新定义之后是不是和原来的串口功能就一样了

Belle1257 发表于 2023-3-15 08:21

话说,开启remap之后,之前的串口就不能用了吧

Annie556 发表于 2023-3-15 09:16

以后还是养成个习惯吧,干什么第一步都是开启复用时钟

B1lanche 发表于 2023-3-15 09:37

对的,重映射功能需要使能AFIO时钟

Allison8859 发表于 2023-3-15 10:52

那以后重定义串口功能是不是也是可以的啊
页: [1]
查看完整版本: MM32单片机UART不能使用问题