|
00001.jpg (22.99 KB, 下載次數(shù): 68)
下載附件
2020-3-22 11:16 上傳
1.起始位
當(dāng)沒(méi)有數(shù)據(jù)發(fā)送時(shí),數(shù)據(jù)線處于邏輯“1”狀態(tài);先發(fā)出一個(gè)邏輯“0”信號(hào),表示開(kāi)始傳輸字符。
2.數(shù)據(jù)位
緊接著起始位之后。資料位的個(gè)數(shù)可以是4、5、6、7、8等,構(gòu)成一個(gè)字符。通常采用ASCII碼。從最低位開(kāi)始傳送,靠時(shí)鐘定位。
3.奇偶校驗(yàn)位
資料為加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn)),以此來(lái)校驗(yàn)資料傳送的正確性。
4.停止位
它是一個(gè)字符數(shù)據(jù)的結(jié)束標(biāo)志。可以是1位、1.5位、2位的高電平。 由于數(shù)據(jù)是在傳輸線上定時(shí)的,并且每一個(gè)設(shè)備有其自己的時(shí)鐘,很
可能在通信中兩臺(tái)設(shè)備間出現(xiàn)了小小的不同步。因此停止位不僅僅是表示傳輸?shù)慕Y(jié)束,并且提供計(jì)算機(jī)校正時(shí)鐘同步的機(jī)會(huì)。適用于停止位的
位數(shù)越多,不同時(shí)鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時(shí)也越慢。
5.空閑位或起始位
處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒(méi)有資料傳送,進(jìn)入空閑狀態(tài)。
處于邏輯“0”狀態(tài),表示開(kāi)始傳送下一數(shù)據(jù)段。
6.波特率
表示每秒鐘傳送的碼元符號(hào)的個(gè)數(shù),是衡量數(shù)據(jù)傳送速率的指標(biāo),它用單位時(shí)間內(nèi)載波調(diào)制狀態(tài)改變的次數(shù)來(lái)表示。
常用的波特率有:9600、115200……
時(shí)間間隔計(jì)算:1秒除以波特率得出的時(shí)間,例如,波特率為9600的時(shí)間間隔為1s / 9600(波特率) = 104us。
函數(shù)如下:
void uart_init(u32 bound)
{
USART_InitStructure.USART_BaudRate = bound;//串口波特率
USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字長(zhǎng)為8位數(shù)據(jù)格式
USART_InitStructure.USART_StopBits = USART_StopBits_1;//一個(gè)停止位
USART_InitStructure.USART_Parity = USART_Parity_No;//無(wú)奇偶校驗(yàn)位
USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//無(wú)硬件數(shù)據(jù)流控制
USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; //收發(fā)模式
USART_Init(USART1, &USART_InitStructure); //初始化串口1
USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//開(kāi)啟串口接受中斷
USART_Cmd(USART1, ENABLE); //使能串口1
}
|
評(píng)分
-
查看全部評(píng)分
|