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);
重定义RX/TX引脚解决了,但是是什么原因引起的呢? 重定义属实需要将复用时钟,不然是不能重定义的 是不是省略了修改后的代码? Remap这个操作是干啥的? 其实有些感觉没必要重定义,麻烦的很 之前我就有一次重定义之后没有开启AFIO时钟,怎么查程序怎么有问题,难受 一般我重新定义都没有开启remap的啊,是因为这寄存器是串口必须用的? 还行,重新定义之后是不是和原来的串口功能就一样了 话说,开启remap之后,之前的串口就不能用了吧 以后还是养成个习惯吧,干什么第一步都是开启复用时钟 对的,重映射功能需要使能AFIO时钟 那以后重定义串口功能是不是也是可以的啊
页:
[1]