




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、CC2530和STM32嵌入式接口技術(shù)開(kāi)發(fā)5.7 STM32串口通信技術(shù)應(yīng)用開(kāi)發(fā)串口介紹STM32的USARTSTM32串口庫(kù)函數(shù)的使用項(xiàng)目實(shí)踐串口通信協(xié)議串口通信(Serial Communications)的概念非常簡(jiǎn)單,串口按位(bit)發(fā)送和接收字節(jié)。典型地,串口用于ASCII碼字符的傳輸。通信使用3根線完成,分別是地線、發(fā)送、接收。由于串口通信是異步的,端口能夠在一根線上發(fā)送數(shù)據(jù)同時(shí)在另一根線上接收數(shù)據(jù)。STM32的串口介紹STM32芯片具有多個(gè) USART 外設(shè)用于串口通訊,它是 Universal SynchronousAsynchronous Receiver and Tran
2、smitter的縮寫(xiě),即通用同步異步收發(fā)器可以靈活地與外部設(shè)備進(jìn)行全雙工數(shù)據(jù)交換。USART串口的原理1. 串口通用功能引腳TXD:發(fā)送引腳RXD:接收引腳2. 串口的數(shù)據(jù)收發(fā)寄存器數(shù)據(jù)接收與發(fā)送寄存器相互獨(dú)立,可以實(shí)現(xiàn)同步數(shù)據(jù)收發(fā)。3. 串口數(shù)據(jù)收發(fā)控制器控制串口的數(shù)據(jù)發(fā)送、接收、喚醒、中斷控制等等。4. 波特率生成器對(duì)數(shù)據(jù)發(fā)送和接收的波特率進(jìn)行控制。STM32F4xx系類(lèi)串口位置STM32芯片的串口眾多,根據(jù)掛載在不同時(shí)鐘總線上的串口可分為高速串口和一般串口,又由于控制器的不同可分為同步串口和異步串口。USART串口外部中斷請(qǐng)求中斷事件事件標(biāo)志使能控制位發(fā)送數(shù)據(jù)寄存器為空 TXE TXEI
3、ECTS 標(biāo)志CTSCTSIE發(fā)送完成TCTCIE準(zhǔn)備好讀取接收到的數(shù)據(jù)RXNERXNEIE檢測(cè)到上溢錯(cuò)誤ORE檢測(cè)到空閑線路 IDLE IDLEIE奇偶校驗(yàn)錯(cuò)誤PEPEIE斷路標(biāo)志LBDLBDIE多緩沖通信中的噪聲標(biāo)志、上溢錯(cuò)誤和幀錯(cuò)誤NF/ORE/FEEIE串口是一種常用的通訊手段,當(dāng)數(shù)據(jù)量較大是就會(huì)遇到各種各樣的問(wèn)題,因此對(duì)各種問(wèn)題也要有一定的中斷處理機(jī)制。串口配置流程1. 使能端口和時(shí)鐘RCC_AHB1PeriphClockCmd(DEBUG_USART_RX_GPIO_CLK|DEBUG_USART_TX_GPIO_CLK,ENABLE);GPIO_Init(DEBUG_USART_
4、RX_GPIO_PORT, &GPIO_InitStructure);2. 配置端口復(fù)用GPIO_PinAFConfig(DEBUG_USART_RX_GPIO_PORT,DEBUG_USART_RX_SOURCE,DEBUG_USART_RX_AF);GPIO_PinAFConfig(DEBUG_USART_TX_GPIO_PORT,DEBUG_USART_TX_SOURCE,DEBUG_USART_TX_AF);3. 初始化串口相關(guān)參數(shù)USART_Init(DEBUG_USART, &USART_InitStructure);4. 使能串口USART_Cmd(DEBUG_USART, EN
5、ABLE);STM32串口庫(kù)精簡(jiǎn)度很高,配置較為簡(jiǎn)單,只需配置時(shí)鐘、復(fù)用、串口參數(shù)即可。串口初始化參數(shù)typedef struct uint32_t USART_BaudRate; / 波特率波特率越高數(shù)據(jù)傳輸速率越快,但傳輸距離越短uint16_t USART_WordLength; / 字長(zhǎng)用于配置數(shù)據(jù)長(zhǎng)度,字長(zhǎng)通常有5位、6位、7位和8位等uint16_t USART_StopBits; / 停止位作為一條信息的結(jié)束位,有1位和2位兩種情況uint16_t USART_Parity; / 校驗(yàn)位校驗(yàn)數(shù)據(jù)在發(fā)送過(guò)程中是否出錯(cuò)uint16_t USART_Mode; / USART 模式用于
6、確認(rèn)串口的收發(fā)模式uint16_t USART_HardwareFlowControl; / 硬件流控制,通常不配置不使能 USART_InitTypeDef; /串口配置結(jié)構(gòu)體串口配置主要需要注意三個(gè)參數(shù),波特率、數(shù)據(jù)長(zhǎng)度、停止位和校驗(yàn)位即可,在使用串口時(shí)另一個(gè)串口接口要于此保持一致。項(xiàng)目場(chǎng)景串口是工業(yè)主板上一種非常通用設(shè)備通信的協(xié)議,大多數(shù)工業(yè)主板包含兩個(gè)以上基于RS-232的串口。串口是按位(bit)發(fā)送和接收字節(jié),速度要比按字節(jié)(byte)的并行通信慢,但串口可以在使用一根線發(fā)送數(shù)據(jù)的同時(shí)用另一根線接收數(shù)據(jù),能夠簡(jiǎn)單實(shí)現(xiàn)遠(yuǎn)距離通信。串口通信最重要的參數(shù)是波特率、數(shù)據(jù)位、停止位和奇偶校驗(yàn)
7、。任務(wù)目標(biāo)使用STM32處理器模擬設(shè)備與中央控制臺(tái)間的數(shù)據(jù)交互。STM32與PC及通過(guò)串口相連,通過(guò)PC機(jī)上機(jī)向STM32處理器發(fā)送數(shù)據(jù)。STM32處理器接受到數(shù)據(jù)后回顯,STM32處理器當(dāng)通過(guò)串口接受到了特定的字符時(shí)向PC機(jī)打印接受到的所有數(shù)據(jù),以此實(shí)現(xiàn)STM32處理器與PC機(jī)的交互。項(xiàng)目分析STM32F407的函數(shù)庫(kù)接口十分精簡(jiǎn),串口的配置也同樣如此。通常STM32F407的的結(jié)構(gòu)體配置主要注意幾個(gè)參數(shù)即可,即波特率、數(shù)據(jù)位、校驗(yàn)位和停止位。在使用串口是需要配置相關(guān)的PC端的串口上位機(jī),配置上位機(jī)時(shí)要注意配置的串口參數(shù)要與芯片本身配置的串口參數(shù)一致。項(xiàng)目程序邏輯框圖程序開(kāi)始執(zhí)行時(shí)首先初始化
8、LED,延時(shí)一段時(shí)間后初始化串口,同時(shí)串口打印相關(guān)的實(shí)驗(yàn)內(nèi)容,信息打印完成后設(shè)置LED初始狀態(tài)為熄滅。然后程序進(jìn)入主循環(huán),在主循環(huán)中程序不斷等待收據(jù)接收,接收到數(shù)據(jù)后將數(shù)據(jù)從新發(fā)送到PC。數(shù)據(jù)在接收過(guò)程中LED3、4閃爍。項(xiàng)目實(shí)現(xiàn)void usart_init(unsigned int bound) /GPIO端口設(shè)置 GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; RCC_AHB1PeriphClockCmd(RCC
9、_AHB1Periph_GPIOA,ENABLE); /使能GPIOA時(shí)鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE); /使能USART1時(shí)鐘 /串口1對(duì)應(yīng)引腳復(fù)用映射 GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1); /GPIOA9復(fù)用為USART1 GPIO_PinAFConfig(GPIOA,GPIO_PinSource10,GPIO_AF_USART1); /GPIOA10復(fù)用為USART1 usart1初始化項(xiàng)目實(shí)現(xiàn) /USART1端口配置 GPIO_Init
10、Structure.GPIO_Pin = GPIO_Pin_9 | GPIO_Pin_10; /GPIOA9與GPIOA10 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; /復(fù)用功能 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /速度50MHz GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; /推挽復(fù)用輸出 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; /上拉 GPIO_Init(GPIOA,&GPIO_I
11、nitStructure); /初始化PA9,PA10 /USART1 初始化設(shè)置 USART_InitStructure.USART_BaudRate = bound; /波特率設(shè)置 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_InitStru
12、cture.USART_HardwareFlowControl = USART_HardwareFlowControl_None; /無(wú)硬件數(shù)據(jù)流控制usart1初始化項(xiàng)目實(shí)現(xiàn) /收發(fā)模式 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(USART1, &USART_InitStructure); /根據(jù)上述配置初始化串口1 /Usart1 NVIC 配置 NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; /串口1中斷通道 NVIC_InitS
13、tructure.NVIC_IRQChannelPreemptionPriority=0; /搶占優(yōu)先級(jí)0 NVIC_InitStructure.NVIC_IRQChannelSubPriority =1; /子優(yōu)先級(jí)1 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /IRQ通道使能 NVIC_Init(&NVIC_InitStructure); /根據(jù)指定的參數(shù)初始化VIC寄存器、 USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); /開(kāi)啟串口1接收中斷 USART_Cmd(USART1, ENABL
14、E); /使能串口1 usart1初始化項(xiàng)目實(shí)現(xiàn)void USART1_IRQHandler(void) if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) /如果收到數(shù)據(jù)(接收中斷) USART_ClearFlag(USART1, USART_IT_RXNE); /清除接收中斷標(biāo)志 if(Usart_len USART_REC_MAX) USART_RX_BUFUsart_len+ = USART_ReceiveData(USART1); /將數(shù)據(jù)放入接收緩沖區(qū) 串口中斷處理函數(shù)項(xiàng)目實(shí)現(xiàn)void clean_usart(void) memset(USART_RX_BUF,0,Usart_len); Usart_len = 0;清除串口緩沖區(qū)項(xiàng)目實(shí)現(xiàn)void usart_send(unsigned
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑行業(yè)的工程進(jìn)度管理計(jì)劃
- 職業(yè)技能提升計(jì)劃的實(shí)施路徑
- 會(huì)計(jì)行業(yè)發(fā)展趨勢(shì)的分析計(jì)劃
- 提高幼兒園教育活動(dòng)的參與感計(jì)劃
- 感知美好生活的藝術(shù)活動(dòng)計(jì)劃
- 《貴州安晟能源有限公司貴州省大方縣對(duì)江井田煤礦(新建)礦產(chǎn)資源綠色開(kāi)發(fā)利用方案(三合一)》專家組評(píng)審意見(jiàn)
- 四川省宜賓市南溪二中高二體育《運(yùn)球、雙手胸前傳接球》教學(xué)實(shí)錄
- 艾灸治療便秘
- 2025年紅河貨運(yùn)從業(yè)資格證考試模擬考試題庫(kù)下載
- 2025年武漢貨運(yùn)駕駛從業(yè)資格證考試題庫(kù)
- DB22T 1189.2-2011 無(wú)公害農(nóng)產(chǎn)品 天麻 第2部分:種子與種麻生產(chǎn)技術(shù)規(guī)程
- 2024數(shù)據(jù)智能白皮書(shū)
- 2024社工(初)《社會(huì)工作實(shí)務(wù)》考試題庫(kù)附答案
- 2024年蘭州市高三診斷考試(一診)數(shù)學(xué)試卷(含答案)
- 辦公耗材采購(gòu)服務(wù)方案(技術(shù)方案)
- (高清版)JTGT 5532-2023 公路橋梁支座和伸縮裝置養(yǎng)護(hù)與更換技術(shù)規(guī)范
- 廣東省廣州市越秀區(qū)2022-2023學(xué)年六年級(jí)下學(xué)期期末數(shù)學(xué)試卷
- 《成功之路+進(jìn)步篇+1》第1課課件
- (2024年)特種設(shè)備安全法律法規(guī)培訓(xùn)課件
- 關(guān)愛(ài)老人婚姻法知識(shí)講座
- (高清版)TDT 1013-2013 土地整治項(xiàng)目驗(yàn)收規(guī)程
評(píng)論
0/150
提交評(píng)論