版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、串口的配置過(guò)程一配置串口用到的10 口:Rx浮空輸入Tx復(fù)用推挽輸出 注意:具體配置如下/GPI0A.9/10 用于串口通信/設(shè)定GPI0A.9(USART.Tx為復(fù)用推挽輸出GPI0_InitStructure.GPI0_Pin=GPI0_Pin_9; GPI0_InitStructure.GPI0_Speed=GPI0_Speed_50MHz;GPI0_InitStructure.GPI0_Mode=GPI0_Mode_AF_PP; GPI0_Init(GPI0A,&GPI0_InitStructure);/ 設(shè)定GPIOA.10(USART.Rx為浮空輸入GPI0_InitStructu
2、re.GPI0_Pin=GPI0_Pin_10; GPI0_InitStructure.GPI0_Speed=GPI0_Speed_50MHz;GPI0_InitStructure.GPI0_Mode=GPI0_Mode_IN_FL0ATING;GPI0_Init(GPI0A,&GPI0_InitStructure);這里使用哪個(gè)端口的哪二個(gè)引腳可以自己選擇! !二配置USART,主要是 USART_InitTypeDef結(jié)構(gòu)體下的幾個(gè)成員 包括波特率,字節(jié)長(zhǎng),停止位,校驗(yàn)位,硬件流,接受發(fā)送等等 注意:具體配置如下void USART_Configuration(void)/ 定義USART
3、初始化結(jié)構(gòu)體USART_InitTypeDef USART_InitStructure;/ 設(shè)置波特率USART_InitStructure.USART_BaudRate = 9600;/ 設(shè)置傳輸位寬USART_InitStructure.USART_WordLength USART_WordLength_8b;/ 設(shè)置停止位USART_InitStructure.USART_StopBits = USART_StopBits_1;/ 設(shè)置奇偶校驗(yàn)USART_InitStructure.USART_Parity = USART_Parity_No;/ 設(shè)置硬件流控制功能USART_InitS
4、tructure.USART_HardwareFlowControl USART_HardwareFlowControl_None;/ 設(shè)置工作方式為接受方式USART_InitStructure.USART_ModeUSART_Mode_Rx|USART_Mode_Tx;/ 初始化串行口USART_Init(USART1,&USART_InitStructure);/ 打開接收中斷USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);/ 打開發(fā)送完中斷USART_ITConfig(USART1,USART_IT_TC,ENABLE);/ 使能串行口USART
5、_Cmd(USART1,ENABLE);三使能串口中需要用到的中斷這些中斷如下 -USART_IT_CTS: CTS改變中斷(對(duì)于UART4和UART5無(wú)法使用)USART_IT_LBD: LINUSART_IT_TXE:USART_IT_TC:USART_IT_RXNE:USART_IT_IDLE: IDLEUSART_IT_PE:- USART_IT_ERR:間隔偵測(cè)中斷 發(fā)送寄存器空中斷 發(fā)送完成中斷 接收寄存器全滿中斷線性中斷奇偶錯(cuò)誤中斷錯(cuò)誤中斷 ( 楨錯(cuò)誤 , 噪聲錯(cuò)誤 , 超速錯(cuò)誤注意:具體配置如下/ 打開接收中斷USART_ITConfig(USART1,USART_IT_RXN
6、E,ENABLE);/ 打開發(fā)送完中斷USART_ITConfig(USART1,USART_IT_TC,ENABLE);這里需要用到什么中斷就調(diào)用函數(shù)開啟哪個(gè) 四 使能串口注意:具體配置如下/ 使能串行口USART_Cmd(USARTx,ENABLE);五打開串口時(shí)鐘 (有的工程把所有的需要開啟的時(shí)鐘, 放在一個(gè)文件里開啟,這里自由選擇, )注意:具體配置如下RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA, ENABLE)需要什么時(shí)鐘就開啟哪個(gè)時(shí)鐘,還有一種辦法就是用如下程序下面的配置用到哪個(gè)時(shí)鐘就開啟哪個(gè)時(shí)
7、鐘:void RCC_Co nfiguratio n(void)ErrorStatus HSEStartUpStatus;/*將外設(shè)RCC寄存器重設(shè)為缺省值*/RCC_DeI nit();/*設(shè)置外部高速晶振(HSE */RCC_HSEConfig(RCC_HSE_ON); RCC_HSE_ON-HS!振打開(ON)/*等待HSE起振*/HSEStartUpStatus = RCC_WaitForHSEStartUp();if(HSEStartUpStatus = SUCCESS) /SUCCESS: HSE晶振穩(wěn)定且就緒/* 設(shè)置AHB時(shí)鐘(HCLK */RCC_HCLKCo nfig(RC
8、C_S YSCLK_Div1);RCC_SYSCLK_Div1-AHB寸鐘二系統(tǒng)時(shí)鐘/*設(shè)置高速APB時(shí)鐘(PCLK2 */RCC_PCLK2Co nfig(RCC_HCLK_Div1); RCC_HCLK_Div1-APB2 時(shí) 鐘 = HCLK , 最大 72MHz/*設(shè)置低速APB時(shí)鐘(PCLK1 */RCC_PCLK1Config(RCC_HCLK_Div2); /RCC_HCLK_Div2-APB1 時(shí)鐘 = HCLK / 2 , 最大 36MHz/*設(shè)置FLASH存儲(chǔ)器延時(shí)時(shí)鐘周期數(shù)*/FLASH_SetLatency(FLASH_Latency_2);/FLASH_Latency
9、_22延時(shí)周期/* 選擇FLASH預(yù)取指緩存的模式*/FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);/ 預(yù)取指緩存使能/*設(shè)置PLL時(shí)鐘源及倍頻系數(shù)*/RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);/ PLL的輸入時(shí)鐘 二HSE時(shí)鐘頻率;RCC_PLLMul_9-PLl輸入時(shí)鐘x9/* 使能 PLL */RCC_PLLCmd(ENABLE);/*檢查指定的RCC標(biāo)志位(PLL準(zhǔn)備好標(biāo)志)設(shè)置與否*/while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)
10、 = RESET)/* 設(shè)置系統(tǒng)時(shí)鐘( SYSCLK */RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);RCC_SYSCLKSource_PLLCLK選擇 PLL作為系統(tǒng)時(shí)鐘/* PLL 返回用作系統(tǒng)時(shí)鐘的時(shí)鐘源 */while(RCC_GetSYSCLKSource() != 0 x08)0 x08 : PLL作為系統(tǒng)時(shí)鐘/ / 設(shè)置ADC的預(yù)分頻器 RCC_ADCCLKConfig(RCC_PCLK2_Div4);/ 開啟 APB2上的 GPIOA寸鐘、GPIOB時(shí)鐘、GPIOC時(shí)鐘、GPIOD寸 鐘、GPIOE勺時(shí)鐘RCC_APB2PeriphClo
11、ckCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_ GPIOB|RCC_APB2Periph_GPIOC, ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_ GPIOE|RCC_APB2Periph_GPIOF, ENABLE);/ 開啟 APB2上 USART、1 ADC1 ADC2的時(shí)鐘 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph _ADC1|RCC_APB2Periph_ADC2|RCC_APB
12、2Periph_ADC3, ENABLE);/開啟AHB總線上的DMA的時(shí)鐘RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1,ENABLE);/開啟APB2上的AFIO功能用于中斷RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO , ENABLE);/開啟APB1總線上的TIM2的時(shí)鐘RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);/ 開啟APB1總線上的TIM3的時(shí)鐘RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);/開
13、啟APB1總線上的TIM4的時(shí)鐘RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);/設(shè)置ADC勺預(yù)分頻,保證ADC勺時(shí)鐘不大于14MHz負(fù)責(zé)影響精度;在72MHZ的下,采用6分頻。RCC_ADCCLKConfig(RCC_PCLK2_Div6);六配置NVIC:使能串口中斷,同時(shí)要設(shè)置中斷的優(yōu)先級(jí)注意:具體配置如下/使能USART中斷,0級(jí)先占優(yōu)先級(jí)和0級(jí)次優(yōu)先級(jí)NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQCha
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年淘寶天貓電商代運(yùn)營(yíng)服務(wù)合同范本解讀9篇
- 2024年幼兒園大班數(shù)學(xué)教案 (一)
- 清淤施工方案匯報(bào)
- 2025年度出租車車輛安全檢測(cè)認(rèn)證合同3篇
- 年度火災(zāi)報(bào)警控制系統(tǒng)產(chǎn)業(yè)分析報(bào)告
- 2004年山西太原中考滿分作文《夢(mèng)里花落知多少》2
- 年度智能化塑殼斷路器競(jìng)爭(zhēng)策略分析報(bào)告
- 部編版七年級(jí)語(yǔ)文上冊(cè)《論語(yǔ) 十二章》教學(xué)設(shè)計(jì)(第三課時(shí))
- 2025年度中式餐廳承包管理合同示范文本4篇
- 賓語(yǔ)從句連詞課程設(shè)計(jì)
- C及C++程序設(shè)計(jì)課件
- 帶狀皰疹護(hù)理查房
- 公路路基路面現(xiàn)場(chǎng)測(cè)試隨機(jī)選點(diǎn)記錄
- 平衡計(jì)分卡-化戰(zhàn)略為行動(dòng)
- 國(guó)家自然科學(xué)基金(NSFC)申請(qǐng)書樣本
- 幼兒教師干預(yù)幼兒同伴沖突的行為研究 論文
- 湖南省省級(jí)溫室氣體排放清單土地利用變化和林業(yè)部分
- 材料設(shè)備驗(yàn)收管理流程圖
- 培訓(xùn)機(jī)構(gòu)消防安全承諾書范文(通用5篇)
- (完整版)建筑業(yè)10項(xiàng)新技術(shù)(2017年最新版)
- 第8期監(jiān)理月報(bào)(江蘇版)
評(píng)論
0/150
提交評(píng)論