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

[复制链接]
 楼主| dreamstart 发表于 2024-8-19 14:27 | 显示全部楼层 |阅读模式
  1.     GPIO_PinAFConfig(GPIO0, GPIO_PinSource_9, AF4_UART); //P0.9复用为UART_RX
  2.     GPIO_PinAFConfig(GPIO0, GPIO_PinSource_7, AF4_UART); //P0.7复用为UART_TX


如上,IO口复用了串口,如何关闭复用? 这样GPIO_PinAFConfig(GPIO0, GPIO_PinSource_7, AF0_GPIO);再复用成模拟口就行?
玉树临风小黑龙 发表于 2024-8-19 17:02 | 显示全部楼层
在配置一下,将这两个IO口复用成AF0_GPIO,功能即可
xionghaoyun 发表于 2024-8-20 10:22 | 显示全部楼层
丙丁先生 发表于 2024-8-20 08:35
要关闭IO口的复用功能,你可以将GPIO_PinAFConfig函数的第三个参数设置为AF0_GPIO。这样,你就可以将GPIO0 ...

对的 最简单重新初始化
qintian0303 发表于 2024-8-20 13:29 | 显示全部楼层
重新初始化就可以了,以最后有限的配置为准,可以随便更改
cooldog123pp 发表于 2024-8-21 11:40 | 显示全部楼层
在配置一下,将这两个IO口复用成AF0_GPIO,功能即可,就是在你使用之前重新配置一下不就可以了。
vivilyly 发表于 2024-9-3 15:56 | 显示全部楼层
需要禁用该IO口的串口功能。              
mikewalpole 发表于 2024-9-3 16:21 | 显示全部楼层
删除或修改与串口相关的初始化代码,添加或修改与普通IO口相关的初始化代码。
kmzuaz 发表于 2024-9-3 17:10 | 显示全部楼层
通过设置相应的控制寄存器,禁用IO口上的串口功能。这通常涉及到清除控制寄存器中与该IO口相关的位。
albertaabbot 发表于 2024-9-3 18:08 | 显示全部楼层
// 关闭USART1时钟
RCC->APB2ENR &= ~RCC_APB2ENR_USART1EN;

// 禁用USART1
USART1->CR1 = 0; // 清除控制寄存器1

// 禁用USART1中断
NVIC_DisableIRQ(USART1_IRQn);

// 取消复用功能
GPIOA->AFR[1] &= ~(0xF << 4); // PA8-PA15的复用功能,此处清除PA9的复用功能

// 配置为普通输入模式
GPIOA->MODER &= ~(0x3 << 18); // PA9为输入模式
GPIOA->PUPDR &= ~(0x3 << 18); // PA9无上拉下拉

// 如果需要配置为输出模式
// GPIOA->MODER |= (0x1 << 18); // PA9为输出模式
// GPIOA->OTYPER |= (0x1 << 9); // PA9为开漏输出
// GPIOA->OSPEEDR |= (0x2 << 18); // PA9输出速度为50 MHz
lzbf 发表于 2024-9-3 19:23 | 显示全部楼层
将IO口配置为普通IO口模式。设置相应的寄存器,
qiufengsd 发表于 2024-9-3 21:02 | 显示全部楼层
确认当前IO口是否已经被配置为串口使用。 单片机的用户手册会列出哪些IO口可以复用为串口。
hearstnorman323 发表于 2024-9-3 22:39 | 显示全部楼层
如果之前使用该IO口进行串口通信,现在需要将其替换为普通IO口的数据传输和处理逻辑。
uptown 发表于 2024-9-4 10:01 | 显示全部楼层
将它们作为普通IO使用,则可能需要额外的配置来保证不影响程序的下载和调试功能。
mickit 发表于 2024-9-4 13:01 | 显示全部楼层
设置IO口的输入或输出方向。对于输出,可能还需要设置输出值寄存器。
yeates333 发表于 2024-9-4 16:04 | 显示全部楼层
将该IO口的方向寄存器设置为输入或输出模式,具体取决于你的应用需求。
单片小菜 发表于 2024-9-4 18:24 | 显示全部楼层
配置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);
sesefadou 发表于 2024-9-5 09:01 | 显示全部楼层
将IO口配置为输入或输出模式。              
mattlincoln 发表于 2024-9-5 10:36 | 显示全部楼层
某些特定的IO口可能因为硬件设计或系统默认配置,拥有特殊的功能或用途,此时更改其功能可能会遇到一些限制。
ulystronglll 发表于 2024-9-5 12:11 | 显示全部楼层
要找到并关闭或禁用与该IO口相关的串口功能。这通常涉及到对串口控制寄存器的操作,将相应的控制位设置为禁用状态。
wwppd 发表于 2024-9-5 13:45 | 显示全部楼层
关闭串口相关的功能和中断。              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

8

主题

14

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部