stm32學(xué)習(xí)筆記--串口波特率
下面把我還能記得的東西整理一下。
1.串口的波特率是如何配置的
STM32的每個(gè)串口都有一個(gè)獨(dú)立的波特率寄存器USSART-BRR,通過(guò)設(shè)置該寄存器就可以達(dá)到配置不同波特率的目的。當(dāng)然關(guān)鍵是波特率該設(shè)置成多少的問(wèn)題。因?yàn)槭紫任覀儜?yīng)該知道的是為什么要配置波特率,下面是百度找到的答案
單片機(jī)串行通信波特率就是每發(fā)送兩個(gè)數(shù)據(jù)的之間的間隔,或者是每秒鐘發(fā)送的字節(jié)數(shù),你在進(jìn)行串行通信時(shí),是兩個(gè)單片機(jī)進(jìn)行通信,那肯定是要進(jìn)行同步的(波特率要相同),要不然通信沒(méi)法建立
也就是說(shuō)波特率是不能任意設(shè)置的,需要和芯片配合起來(lái)。我們知道波特率之后還需要把它用寄存器表示出來(lái),這就牽涉到最初說(shuō)道的計(jì)算。其中USART-BRR的最低四位用來(lái)存放小數(shù)部分,緊接著的12位用來(lái)存放整數(shù)部分,最高16位沒(méi)有使用。計(jì)算公式如下
USARTDIV=PCLK2/(串口波特率*16)。這樣就可以算出USARTDIV的值了,然后轉(zhuǎn)換成二進(jìn)制放入寄存器中就完成了對(duì)串口波特率的設(shè)置。
評(píng)論