如題,如何修改USART2串口波特率為1.2M,根據(jù)手冊的計算公式,和代碼中的變量定義
直接修改USART_Printf_Init(115200);為1.2M沒有效果,還有PCLK1的數(shù)值定義我并沒有找到是多少,但我以115200倒推的結(jié)果很離譜
這個公式中需要注意單位的換算嗎?能否舉一個簡單的計算例子
我使用的系統(tǒng)時鐘為72MHZ
如題,如何修改USART2串口波特率為1.2M,根據(jù)手冊的計算公式,和代碼中的變量定義
直接修改USART_Printf_Init(115200);為1.2M沒有效果,還有PCLK1的數(shù)值定義我并沒有找到是多少,但我以115200倒推的結(jié)果很離譜
這個公式中需要注意單位的換算嗎?能否舉一個簡單的計算例子
我使用的系統(tǒng)時鐘為72MHZ
你好,我們以1.2M來計算,假設(shè)你串口2工作在36M時鐘下
由收發(fā)器的波特率 =FCLK/(16*USARTDIV)得到USARTDIV=1.875,
后根據(jù)USARTDIV = DIV_M+(DIV_F/16),可得到,DIV_M=1,DIV_F=0.875*16=14.所以是可以得到1.2M波特率的??蓞⒖几郊虦y試。
具體修改哪個文件里面的參數(shù)可以更改波特率(也就是DIV_M還有DIV_F的值),我看您發(fā)的文件里面這個USART_BRR_DIV_Fraction數(shù)值與我的相同,只需要修改USART_Printf_Init()這個參數(shù)就可以了嗎?,還有這個PCLK1的具體數(shù)值在哪個文件里面有定義
你好,你所說的那兩個值就是下面兩個寄存器的值。想設(shè)置某個波特率直接在USART_Printf_Init()函數(shù)里填寫相應(yīng)參數(shù)就可以,由USART_Init()函數(shù)自主完成計算,決定往這兩個寄存器存入相應(yīng)的值,所有不需要你這邊設(shè)置什么
還有使用你發(fā)的歷程,燒錄到CH32V203C8T6中,接收亂碼
但在修改波特率為115200后,亂碼沒有了
剛剛測試了一下,0.5M以下的都可以正常接收,速率高了就會亂碼,硬件測試環(huán)境會有影響嗎?您能測試一下v203C8T6在你那邊環(huán)境可以正常接收不
你好,WCHLINK暫不支持非標(biāo)準(zhǔn)波特率可換個如340再試一下,如還不行建議再換個串口調(diào)試助手試下,我這邊是測試通過再發(fā)給你這邊的。后續(xù)再有問題可郵箱與我溝通yrl@wch.cn
更換CH340后正常接收