stm32f103c8t6如何通过按键将原有的9600波特率改变成115200
时间: 2023-09-06 11:08:19 浏览: 38
要通过按键将STM32F103C8T6的波特率从9600改变为115200,需要进行以下步骤:
1. 首先,在代码中定义一个变量来存储当前波特率,例如:
```
uint32_t baudrate = 9600;
```
2. 然后,在初始化串口的代码中,将波特率设置为该变量的值:
```
huart.Init.BaudRate = baudrate;
```
3. 接着,在按键中断处理函数中,修改该变量的值,并重新设置波特率:
```
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if (GPIO_Pin == GPIO_PIN_0) // 如果是按键引脚触发的中断
{
if (baudrate == 9600)
{
baudrate = 115200;
}
else
{
baudrate = 9600;
}
huart.Init.BaudRate = baudrate; // 重新设置波特率
HAL_UART_Init(&huart); // 重新初始化串口
}
}
```
4. 最后,在main函数中启动按键中断:
```
HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI0_IRQn);
```
这样,当按下按键时,就会触发中断处理函数,修改波特率并重新初始化串口,从而实现将波特率从9600改变为115200。