![教學(xué)課件 11-與PC串口通信_(tái)第1頁](http://file4.renrendoc.com/view14/M06/04/37/wKhkGWdQFcGALVU3AAGfzl_BdbQ016.jpg)
![教學(xué)課件 11-與PC串口通信_(tái)第2頁](http://file4.renrendoc.com/view14/M06/04/37/wKhkGWdQFcGALVU3AAGfzl_BdbQ0162.jpg)
![教學(xué)課件 11-與PC串口通信_(tái)第3頁](http://file4.renrendoc.com/view14/M06/04/37/wKhkGWdQFcGALVU3AAGfzl_BdbQ0163.jpg)
![教學(xué)課件 11-與PC串口通信_(tái)第4頁](http://file4.renrendoc.com/view14/M06/04/37/wKhkGWdQFcGALVU3AAGfzl_BdbQ0164.jpg)
![教學(xué)課件 11-與PC串口通信_(tái)第5頁](http://file4.renrendoc.com/view14/M06/04/37/wKhkGWdQFcGALVU3AAGfzl_BdbQ0165.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
項(xiàng)目四串口通信任務(wù)1與PC串口通信項(xiàng)目四串口通信任務(wù)1任務(wù)2與PC串口通信控制LED亮滅知識(shí)目標(biāo):1.知道串行通信工作原理及特點(diǎn);2.掌握串口通信相關(guān)庫函數(shù)。技能目標(biāo):1.能正確使用串口通信相關(guān)庫函數(shù)。2.會(huì)串行通信的編程方法;素養(yǎng)目標(biāo):1.操作規(guī)范,符合5S管理要求;2.具備自主探究、勤學(xué)好問的態(tài)度。學(xué)習(xí)目標(biāo)設(shè)計(jì)要求PC機(jī)給STM32的串口發(fā)送字符,STM32將接收到的字符再傳回PC機(jī),在PC機(jī)上通過串口調(diào)試助手完成上述功能,編寫控制程序并進(jìn)行系統(tǒng)調(diào)試。硬件設(shè)計(jì)硬件連接:
知識(shí)導(dǎo)航串行通信是STM32與外界進(jìn)行信息交換的一種方式,被廣泛應(yīng)用于STM32雙機(jī)通信、多機(jī)通信以及STM32與PC機(jī)之間通信等方面。知識(shí)導(dǎo)航UART異步通信方式引腳連接方法RXD:數(shù)據(jù)輸入引腳(數(shù)據(jù)接受)TXD:數(shù)據(jù)發(fā)送引腳(數(shù)據(jù)發(fā)送)知識(shí)導(dǎo)航下面這些引腳默認(rèn)的功能都是GPIO,在作為串口使用時(shí),就要用到這些引腳的復(fù)用功能,在使用復(fù)用功能之前,必須對復(fù)用的端口進(jìn)行設(shè)置。串口號RXDTXD1PA10PA92PA3PA23PB11PB104PC11PC105PD2PC12串口對應(yīng)的引腳知識(shí)導(dǎo)航
STM32串口相關(guān)寄存器波特比率寄存器(USART_BRR)知識(shí)導(dǎo)航USART波特率與USART_BRR寄存器中的值USARTDIV關(guān)系如下: Tx/Rx波特率=其中:fPCLKx是給串口的時(shí)鐘(PCLK1用于USART2、3、UART4、5,PCLK2用于USART1),USARTDIV是一個(gè)無符號的定點(diǎn)數(shù)。
知識(shí)導(dǎo)航例1:如果DIV_Mantissa=27,DIV_Fraction=12(USART_BRR=0x1BC),則Mantissa(USARTDIV)=27Fraction(USARTDIV)=12/16=0.75所以USARTDIV=27.75知識(shí)導(dǎo)航例2:要求USARTDIV=25.62,如何設(shè)置寄存器USART_BRR?DIV_Fraction=16*0.62=9.92最接近的整數(shù)是:10=0xADIV_Mantissa=mantissa(25.620)=25=0x19所以USART_BRR=0x19A知識(shí)導(dǎo)航例3:要求USARTDIV=50.99,如何設(shè)置寄存器USART_BRR?DIV_Fraction=16*0.99=15.84最接近的整數(shù)是:16=0x10=>DIV_frac[3:0]溢出
=>進(jìn)位必須加到小數(shù)部分DIV_Mantissa=mantissa(50.990+進(jìn)位)=51=0x33所以USART_BRR=0x330,USARTDIV=51知識(shí)導(dǎo)航實(shí)例:設(shè)置USART1串口的波特率是115200bps,如何設(shè)置寄存器USART_BRR的值?USARTDIV=72000000/(16*115200)=39.0625整數(shù)部分DIV_Mantissa=39=0x27小數(shù)部分DIV_Fraction=16*0.0625=1所以USART_BRR=0x271知識(shí)導(dǎo)航
STM32串口相關(guān)寄存器控制寄存器1(USART_CR1)控制寄存器USART_CR1,只用了低14位,高18位保留知識(shí)導(dǎo)航位13(UE)USART使能。0:USART分頻器和輸出被禁止;1:USART模塊使能。位12(M)定義了數(shù)據(jù)字的長度。0:一個(gè)起始位、8個(gè)數(shù)據(jù)位、n個(gè)停止位;1:一個(gè)起始位、9個(gè)數(shù)據(jù)位、n個(gè)停止位。位6(TCIE)發(fā)送完成中斷使能。0:禁止產(chǎn)生中斷;1:當(dāng)USART_SR中的TC為’1’時(shí),產(chǎn)生USART中斷。位5(RXNEIE)接收緩沖區(qū)非空中斷使能。0:禁止產(chǎn)生中斷;1:當(dāng)USART_SR中的ORE或者RXNE為“1”時(shí),產(chǎn)生USART中斷。位3(TE)發(fā)送使能發(fā)送器。0:禁止發(fā)送;1:使能發(fā)送。位2(RE)接收使能。0:禁止接收;1:使能接收,并開始搜尋RX引腳上的起始位。知識(shí)導(dǎo)航
STM32串口相關(guān)寄存器數(shù)據(jù)寄存器(USART_DR)位8:0(DR)是數(shù)據(jù)值,這9位包含了發(fā)送或接收的數(shù)據(jù)。USART_DR是由兩個(gè)寄存器組成的,一個(gè)是用發(fā)送(TDR),一個(gè)是用接收(RDR),該寄存器兼具讀和寫的功能。TDR寄存器提供了內(nèi)部總線和輸出移位寄存器之間的并行接口;RDR寄存器提供了輸入移位寄存器和內(nèi)部總線之間的并行接口。知識(shí)導(dǎo)航
STM32串口相關(guān)寄存器狀態(tài)寄存器(USART_SR)位6(TC)發(fā)送完成標(biāo)志位。0:發(fā)送還未完成;1:發(fā)送完成。位5(RXNE)讀數(shù)據(jù)寄存器非空標(biāo)志位。0:數(shù)據(jù)沒有收到;1:收到數(shù)據(jù),可以讀出。位0(PE)是校驗(yàn)錯(cuò)誤。0:沒有奇偶校驗(yàn)錯(cuò)誤;1:奇偶校驗(yàn)錯(cuò)誤。知識(shí)導(dǎo)航函數(shù)USART_Init函數(shù)原型:voidUSART_Init(USART_TypeDef*USARTx,USART_InitTypeDef*USART_InitStruct);函數(shù)功能:完成指定串口初始化,主要是配置串口的參數(shù)。參數(shù)1:選擇要初始化的串口。參數(shù)2:結(jié)構(gòu)USART_InitTypeDef的指針。知識(shí)導(dǎo)航USART_InitTypeDef結(jié)構(gòu)體typedefstruct{u32USART_BaudRate;u16USART_WordLength;u16USART_StopBits;u16USART_Parity;u16USART_HardwareFlowControl;u16USART_Mode;u16USART_Clock;u16USART_CPOL;u16USART_CPHA;u16USART_LastBit;}USART_InitTypeDef;知識(shí)導(dǎo)航USART_BaudRate:用于設(shè)置串口傳輸?shù)牟ㄌ芈?。USART_WordLength:定義一幀數(shù)據(jù)中傳輸或接收到的數(shù)據(jù)位數(shù)。知識(shí)導(dǎo)航USART_StopBits:指定發(fā)送的停止位數(shù)目。USART_Parity:定義奇偶模式。知識(shí)導(dǎo)航USART_HardwareFlowControl:指定硬件流控制模式使能還是禁止。USART_Mode:指定使能或禁止發(fā)送和接收模式知識(shí)導(dǎo)航實(shí)例USART_InitTypeDefUSART_InitStrue;USART_InitStrue.USART_BaudRate=115200;USART_InitStrue.USART_WordLength=USART_WordLength_8b;USART_InitStrue.USART_StopBits=USART_StopBits_1;USART_InitStrue.USART_Parity=USART_Parity_No;USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;USART_Init(USART1,&USART_InitStrue);知識(shí)導(dǎo)航函數(shù)USART_Cmd函數(shù)原型:voidUSART_Cmd(USART_TypeDef*USARTx,FunctionalStateNewState);
函數(shù)功能:用于使能串口。參數(shù)1:要使能的串口。參數(shù)2:串口的狀態(tài)Enable或Disable。例如:
USART_Cmd(USART1,ENABLE);知識(shí)導(dǎo)航函數(shù)USART_SendData函數(shù)原型:
voidUSART_SendData(USART_TypeDef*USARTx,u8Data);
函數(shù)功能:通過串口USARTx發(fā)送單個(gè)數(shù)據(jù)。參數(shù)1:要發(fā)送數(shù)據(jù)的串口USARTx。參數(shù)2:待發(fā)送的數(shù)據(jù)。例如:
USART_SendData(USART1,dat);知識(shí)導(dǎo)航函數(shù)USART_ReceiveData函數(shù)原型:
u8USART_ReceiveData(USART_TypeDef*USARTx);
函數(shù)功能:返回USARTx新接收到的數(shù)據(jù)。參數(shù):用于接收數(shù)據(jù)的串口USARTx。例如:
dat=USART_ReceiveData(USART1);知識(shí)導(dǎo)航函數(shù)USART_GetFlagStatus函數(shù)原型:
FlagStatusUSART_GetFlagStatus(USART_TypeDef*USARTx,u16USART_FLAG);
函數(shù)功能:檢查指定的USART標(biāo)志位設(shè)置與否。參數(shù)1:待檢查的串口USARTx。參數(shù)2:待檢查的USART標(biāo)志位。返回值:SET(接收/發(fā)送寄存器非空)或RESET(接收/發(fā)送寄存器為空)。知識(shí)導(dǎo)航知識(shí)導(dǎo)航實(shí)例if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE)==SET){ intdat; dat=USART_ReceiveData(USART1); USART_SendData(USART1,dat); while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);}任務(wù)實(shí)現(xiàn)串口時(shí)鐘使能,GPIO時(shí)鐘使能:RCC_APB2PeriphClockCmd();GPIO端口模式設(shè)置:GPIO_Init();PA9設(shè)置成復(fù)用功能的推挽輸出(GPIO_Mode_AF_PP)PA10設(shè)置成浮空輸入(GPIO_Mode_IN_FLOATING)串口參數(shù)初始化:USART_Init();使能串口:USART_Cmd();數(shù)據(jù)發(fā)送和接收:USART_GetFlagStatus()、USART_SendData()、USART_ReceiveData()。拓展練習(xí):利用STM32中斷系統(tǒng)實(shí)現(xiàn):PC機(jī)給STM32的串口發(fā)送字符,STM32將接收到的字符再傳回PC機(jī)。技能訓(xùn)練知識(shí)導(dǎo)航函數(shù)USART_ITConfig函數(shù)原型:
voidUSART_ITConfig(USART_TypeDef*USARTx,u16USART_IT,FunctionalStateNewState);
函數(shù)功能:使能或禁止指定的USART中斷。參數(shù)1:指定的串口USARTx。參數(shù)2:待使能或禁止的USART中斷源。參數(shù)3:設(shè)置USARTx中斷的狀態(tài)(ENABLE或者DISABLE)。知識(shí)導(dǎo)航例如:USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);知識(shí)導(dǎo)航函數(shù)USART_GetITStatus函數(shù)原型:
ITStatusUSART_GetITStatus(USART_TypeDef*USARTx,u16USART_IT);
函數(shù)功能:檢查指定的USART中斷是否發(fā)生。參數(shù)1:待檢查的串口USARTx。參數(shù)2:待檢查的USART中斷源。返回值:SET(發(fā)生中斷)或RESET(未發(fā)生中斷)。知識(shí)導(dǎo)航中斷服務(wù)函數(shù)USART1_IRQHandlervoidUSART1_IRQHandler(void){ if(USART_GetITStatus(USART1,USART_IT_RXNE)==
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年分離純化控制系統(tǒng)合作協(xié)議書
- 人教版 八年級英語下冊 Unit 10 單元綜合測試卷(2025年春)
- 人教版化學(xué)九年級上冊第一單元《-走進(jìn)化學(xué)世界》測試試題(含答案)
- 2025年產(chǎn)品買賣協(xié)議常用版(4篇)
- 2025年個(gè)人車輛出租合同常用版(4篇)
- 2025年代理進(jìn)口合同標(biāo)準(zhǔn)范文(2篇)
- 2025年九年級年級組長管理工作總結(jié)(四篇)
- 2025年人防工程施工合同(三篇)
- 2025年個(gè)人股權(quán)的投資協(xié)議(三篇)
- 2025年九年級班主任年度期末工作總結(jié)模版(二篇)
- 產(chǎn)業(yè)鏈競爭關(guān)聯(lián)度
- TTJSFB 002-2024 綠色融資租賃項(xiàng)目評價(jià)指南
- 涵洞施工鋼筋混凝土圓管涵
- 高考地理一輪復(fù)習(xí)學(xué)案+區(qū)域地理填圖+亞洲
- 全新車位轉(zhuǎn)讓協(xié)議模板下載(2024版)
- 高中數(shù)學(xué)必修一試卷及答案
- 砌筑工考試卷及答案
- 呼吸治療師進(jìn)修匯報(bào)
- 智慧港口和自動(dòng)化集裝箱碼頭
- 2024年江西電力職業(yè)技術(shù)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 天合儲(chǔ)能:2024儲(chǔ)能專用電芯白皮書
評論
0/150
提交評論