[技术讨论] 在 LwIP_HTTP_Server_Netconn_RTOS 工程中添加 USART3 功能时遇到问题

[复制链接]
80|6
地瓜patch 发表于 2026-6-7 20:47 | 显示全部楼层 |阅读模式
我需要在官方的 LwIP_HTTP_Server_Netconn_RTOS 示例中添加 USART1 和 USART3 通信功能,但一直卡在 HAL_UART_Transmit() 函数返回值为 3 这个问题上。
我所用控制器为STM32F439ZI,想用 PD8 作为 TX、PD9 作为 RX,但没找到在哪里配置这组引脚。
我怀疑代码而这两个引脚可能与 ETH_MII_RX、ETH_MII_TX产生冲突。
以下为测试代码
int uart_test(void)
{
int rv = OK;
char cmd[ZABER_STR_LEN]={0};
enum zaber_dev dev = ZAB_BOTH;

huart3.Instance = USART3;
huart3.Init.BaudRate = 115200;
huart3.Init.WordLength = UART_WORDLENGTH_8B;
huart3.Init.StopBits = UART_STOPBITS_1;
huart3.Init.Parity = UART_PARITY_NONE;
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; // No hardware flow control
huart3.Init.Mode = UART_MODE_TX_RX; // Full-duplex mode
if (HAL_UART_Init(&huart3) != HAL_OK)
{
Error_Handler();
}
if (dev==ZAB_BOTH)
sprintf(cmd, "/%s\n", ZABER_CMD_HOME);
else
sprintf(cmd, "/%d %s\n", dev, ZABER_CMD_HOME);

rv = HAL_UART_Transmit(&huart3, (uint8_t*)cmd, strlen(cmd), 1000);
return rv;
}

int main(void)
{
HAL_Init();
SystemClock_Config();
uart_test();

hao2014 发表于 2026-6-30 15:01 | 显示全部楼层
检查下引脚配置
SophiaOP 发表于 2026-7-12 14:25 | 显示全部楼层
PD8、PD9配置在GPIO_InitTypeDef里,检查是否与ETH_MII冲突,重置ETH,再配置。
AloneKaven 发表于 2026-7-13 11:00 | 显示全部楼层
PD8、PD9配置在GPIO_InitTypeDef里,检查ETH_MII是否占用,重置ETH后再配置。如果冲突,尝试更换其他未使用的引脚。
Bowclad 发表于 2026-7-14 15:14 | 显示全部楼层
先检查HAL库配置,确保PD8、PD9不在ETH_MII引脚配置里,再尝试重新初始化ETH和GPIO。
狄克爱老虎油 发表于 2026-7-15 11:16 | 显示全部楼层
PD8、PD9确实可能在ETH_MII配置里,重置ETH后,在GPIO_InitTypeDef里重新配置引脚,试试看。
CarterERO 发表于 2026-7-16 15:14 | 显示全部楼层
先检查HAL库配置,确保PD8、PD9不在ETH_MII配置里,重置ETH后,在GPIO_InitTypeDef里重新配置引脚,并确保USART3中断优先级设置正确。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:出一块TI-PLABS-AMP-EVM

3038

主题

18147

帖子

31

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