我需要在官方的 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();
|
|