gpt4 book ai didi

stm32 - 在STM32板上运行后如何更改UART波特率?

转载 作者:行者123 更新时间:2023-12-03 14:16:53 30 4
gpt4 key购买 nike

我正在使用 STM32F746ZG并使用五个 UARTs . All UARTs工作正常。
有人能告诉我在USART上更改波特率的程序吗?一旦它已经被初始化?我正在使用 USART6并用 9600 初始化波特率。开机后,通过USART没有任何通信.我想从 9600 to 57600 or 115200 更改波特率.为了这个变化,我调用 HAL_UART_DeInit()MX_USART6_UART_Init_57600()但它不起作用。
如果我没有改变波特率,它工作正常。但是如果我改变了波特率,就无法通过USART.接收数据
如果有人知道解决方案,请告诉我。

以下是我的代码。

int main(void)
{
HAL_Init();

SystemClock_Config();


MX_UART7_Init();
MX_UART8_Init();
MX_USART2_UART_Init();
MX_USART3_UART_Init();
MX_USART6_UART_Init();

}

void MX_USART6_UART_Init(void)
{
huart6.Instance = USART6;
huart6.Init.BaudRate = 9600;
huart6.Init.WordLength = UART_WORDLENGTH_8B;
huart6.Init.StopBits = UART_STOPBITS_1;
huart6.Init.Parity = UART_PARITY_NONE;
huart6.Init.Mode = UART_MODE_TX_RX;
huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart6.Init.OverSampling = UART_OVERSAMPLING_16;
huart6.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart6.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart6) != HAL_OK)
{
Error_Handler();
}
}

void MX_USART6_UART_Init_57600(void)
{
huart6.Instance = USART6;
huart6.Init.BaudRate = 57600; // change from 9600 to 57600
huart6.Init.WordLength = UART_WORDLENGTH_8B;
huart6.Init.StopBits = UART_STOPBITS_1;
huart6.Init.Parity = UART_PARITY_NONE;
huart6.Init.Mode = UART_MODE_TX_RX;
huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart6.Init.OverSampling = UART_OVERSAMPLING_16;
huart6.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart6.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart6) != HAL_OK)
{
Error_Handler();
}
}

int Change_UART(void)
{
HAL_UART_DeInit(&huart6);
MX_USART6_UART_Init_57600();

}

我打了电话 Change_UART()但它不起作用。

最佳答案

您的问题应该是:如何使用膨胀软件 HAL 更改 bautrate?

我不知道。

但它可以在3行简单代码中存档。

USART6 -> CR1 &= ~(USART_CR1_UE);
USART6 -> BRR = NEWVALUE;
USART6 -> CR1 |= USART_CR1_UE;

关于stm32 - 在STM32板上运行后如何更改UART波特率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57283327/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com