今天把同學(xué)的datasheet復(fù)印版本拿過來跟著視頻學(xué)的,突然間發(fā)現(xiàn)復(fù)印版本的datasheet好比電子檔的要好很多,給我個人的感覺吧,要掌握一門芯片,真的要去仔仔細細的看一下datasheet,靜下心來看,發(fā)現(xiàn)他和六級中科學(xué)類閱讀是一樣的,我在感到慶幸的同時,還在感謝我高中的班主任,感謝他在高中的時候,英語學(xué)習(xí)對我的幫助,好了吐槽到這,進入今天的正題~~~
異步通信的特點:
1:可以是7位和8為數(shù)據(jù)字節(jié),能夠進行奇偶校驗
2:獨立的收發(fā)移位寄存器
3:發(fā)送數(shù)據(jù)的有獨立的接收和發(fā)送寄存器,注意是低位在前面
4:內(nèi)置空閑線路和地址通信協(xié)議
5:擁有起始位探測,可以從低功耗模式中喚醒
6: 可編程的波特率發(fā)生器
7:錯誤探測
8:獨立的收發(fā)中斷
其實這些功能:只需要這張圖就可以解決了,各個模塊的應(yīng)用,其實很容易懂的,下面來介紹一下
首先看標志1:三個可以選擇的時鐘源ACLK,SMCLK,UCLK1,
進去就是一個分頻器(標志2),由于分頻器存在一定的誤差,舉個例子,就是學(xué)習(xí)51的時候,為了的到9600的波特率,不是片外的晶振必須是11.0592MHz 的晶振嗎,如果采用12M的就會有誤差,430為了克服這個問題,采用了分頻器得到整數(shù),小數(shù)部分通過一個小數(shù)點的邏輯電腦(多數(shù)表決得到)當(dāng)然誤差肯定也是存在的,但是430得到了進一步的優(yōu)化
在進去就要看上下兩部分圖中標志是3,還有4,其中3是接收部分,4是發(fā)射部分,每個部分有移位寄存器,緩存器,還有接發(fā)收控制寄寄存器組成
最后在對每個部分進行分析就可以了,關(guān)鍵是要看懂datasheet上的介紹,這張圖的了解這么多就可以了
430提供兩種多機通信方式:空閑線路通信模式,地址通信模式
其中空閑線路是以線路閑置的時間來判斷是數(shù)據(jù)位還是地址位,其中如果線路閑置了超過10個高電平的間隔,當(dāng)單片機再次接收到數(shù)據(jù)是,這把第一個數(shù)據(jù)當(dāng)作是地址位,后面的是緊跟的是數(shù)據(jù),如果沒有超過,這一直認為是數(shù)據(jù)塊
地址通信模式的話,就是在數(shù)據(jù)中穿插了一個標志位,其中當(dāng)標志位是1的時候,單片機認為這是地址,當(dāng)標志位是0時則認為是數(shù)據(jù)
之后便是430單片機提供的數(shù)據(jù)檢測,比如幀錯誤,奇偶校驗錯誤,重復(fù)接收錯誤,斷開錯誤,等等還有出現(xiàn)錯誤是繼續(xù)送給cpu處理的設(shè)置,還是果斷拋棄,關(guān)鍵的標志位要看具體的datasheet上的說明
之后便是USART的接收允許和中斷允許,也是需要看懂幾個圖就可以了
接收使能圖
首先看一下標號1,這是單片機不允許接收的狀態(tài),這個時候,URXEx等于0,當(dāng)URXEx等于1的時候,單片機處于狀態(tài)2,這時候,如果給單片機發(fā)送任何一個數(shù)據(jù),都可以讓單片機處于狀態(tài)3,注意的是,單片機的URXEx是系統(tǒng)硬件清零,當(dāng)單片機完成狀態(tài)3,便會向cpu提供一個中斷的申請
同樣,發(fā)送狀態(tài)也是差不多,這里可以去參考datasheet了,筆者不做另外說明
430單片機的UART看懂這些,就可以看相關(guān)的寄存器操作了,但是學(xué)習(xí)寄存器的使用,光看懂是沒用的,要通過具體的編程,好了,今天就總結(jié)到這里