USART串口配置方法_第1頁(yè)
USART串口配置方法_第2頁(yè)
USART串口配置方法_第3頁(yè)
USART串口配置方法_第4頁(yè)
USART串口配置方法_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論