怎么样在freertos任务中重新初始化外设
freertos中比如,任务1:接收到上位机发送命令修改串口3波特率相关配置 ,直接重新初始化串口3配置,任务2:也就是串口3接收任务,一直运行,硬汉哥可以这样吗,程序不会跑飞吧接收上位机命令用的什么通信方式,也是串口3吗 eric2013 发表于 2023-11-5 10:12
接收上位机命令用的什么通信方式,也是串口3吗
对,也是串口3 裸机letter shell试过,没问题(看乱码部分)乱码之后我手工改了波特率就正常了。
/*
*********************************************************************************************************
* 函 数 名: comSetBaud
* 功能说明: 设置串口的波特率. 本函数固定设置为无校验,收发都使能模式
* 形 参: _ucPort: 端口号(COM1 - COM8)
* _BaudRate: 波特率,8倍过采样波特率.0-12.5Mbps
* 16倍过采样 波特率.0-6.25Mbps
* 返 回 值: ret
*********************************************************************************************************
*/
int comSetBaud(COM_PORT_E _ucPort, uint32_t _BaudRate)
{
UART_T *pUart;
UART_HandleTypeDef *huart;
uint16_t brrtemp;
UART_ClockSourceTypeDef clocksource;
uint32_t usartdiv;
HAL_StatusTypeDef ret = HAL_OK;
uint32_t lpuart_ker_ck_pres;
PLL2_ClocksTypeDef pll2_clocks;
PLL3_ClocksTypeDef pll3_clocks;
uint32_t pclk;
pUart = ComToUart(_ucPort);
if (pUart == 0)
{
return -1;
}
huart = pUart->huart;
huart->Init.BaudRate = _BaudRate;
/* 参考 stm32xx_hal_uart.c --> UART_SetConfig() 中寄存器 BRR 配置部分。 */
/*-------------------------- USART BRR Configuration -----------------------*/
https://ghproxy.com/https://raw.githubusercontent.com/cctv180/STM32H743XI_Demo/main/User/bsp/src/bsp_uart.c cctv180 发表于 2023-11-5 20:11
裸机letter shell试过,没问题(看乱码部分)乱码之后我手工改了波特率就正常了。
...
感谢 我得去试试看
页:
[1]