这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » IO口复用为串口后,想继续改变成普通IO口如何操作?

共2条 1/1 1 跳转至

IO口复用为串口后,想继续改变成普通IO口如何操作?

高工
2024-12-04 22:09:51     打赏

  GPIO_PinAFConfig(GPIO0, GPIO_PinSource_9, AF4_UART); //P0.9复用为UART_RX
    GPIO_PinAFConfig(GPIO0, GPIO_PinSource_7, AF4_UART); //P0.7复用为UART_TX

IO口复用了串口,如何关闭复用? 这样GPIO_PinAFConfig(GPIO0, GPIO_PinSource_7, AF0_GPIO);再复用成模拟口就行?


高工
2024-12-04 22:10:29     打赏
2楼

要关闭IO口的复用功能,你可以将GPIO_PinAFConfig函数的第三个参数设置为AF0_GPIO。这样,你就可以将GPIO0的第9个引脚(P0.9)和第7个引脚(P0.7)复用为普通GPIO。然后,你可以将这些引脚配置为模拟输入或输出,以实现你的需求。

以下是关闭复用的代码:

```c
GPIO_PinAFConfig(GPIO0, GPIO_PinSource_9, AF0_GPIO); //关闭P0.9的UART_RX复用
GPIO_PinAFConfig(GPIO0, GPIO_PinSource_7, AF0_GPIO); //关闭P0.7的UART_TX复用
```

接下来,你可以将这些引脚配置为模拟输入或输出,例如:

```c
GPIO_InitTypeDef GPIO_InitStructure;

// 配置P0.9为模拟输入
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIO0, &GPIO_InitStructure);

// 配置P0.7为模拟输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
GPIO_Init(GPIO0, &GPIO_InitStructure);


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]