STM32 串口modbus协议中波特率修改问题

3.5个字符间隔表示一帧数据结束

  使用CUBE LL库出现再次初始化波特率不能修改问题,直接操作底层brr寄存器

 

     uint32_t boaud;
    uint32_t periphclk = LL_RCC_PERIPH_FREQUENCY_NO;
    LL_RCC_ClocksTypeDef rcc_clocks;
    LL_RCC_GetSystemClocksFreq(&rcc_clocks);
    periphclk = rcc_clocks.PCLK2_Frequency;
    LL_USART_SetBaudRate(USART1,periphclk,boaud);

    if((boaud = LL_USART_GetBaudRate(USART1, periphclk)) == boaud)
        HAL_GPIO_TogglePin (LED1_GPIO_Port ,LED1_Pin);

 

/*  参考来自于LL库底层代码    */

/*  一定要注意3.5个字符时间间隔,如果不是随着波特率变化而更新,。则可能修改波特率时  ,波特率太小时间间隔出错*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值