stm32 - 在STM32板上运行后如何更改UART波特率?
问题描述
我正在使用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;
推荐阅读
- git - 在 Git 中,获得“当前不在任何分支上”状态的最简单方法是什么?
- python - 如果熊猫数据框总和
- java - 错误:无法访问 jarfile myfile.jar
- xcode - 将 Xcode 中的 Bundle Missing Provisioning Profile 上传到 App Store/Testflight
- java - 没有读取该列的所有行
- ajax - MVC Ajax 使用 ID 参数和模型附加部分视图
- css - 角度的动态 CSS ID 选择器
- flutter - 颤振将 ImageProvider 转换为文件
- python - 在第一次迭代后使用 write 函数时,有没有办法删除添加的标头?
- android - 小米手机如何锁定指定区域?