在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > stm32串口中斷接收發(fā)送實驗

            stm32串口中斷接收發(fā)送實驗

            作者: 時間:2016-11-19 來源:網絡 收藏
            intmain()

            本文引用地址:http://www.biyoush.com/article/201611/318081.htm

            {

            u32i=0;

            /*芯片配置初始化----------------------------------------------------------*/

            RCC_Configuration();//復位和時鐘控制配置

            NVIC_Configuration();//嵌套中斷向量控制器配置

            GPIO_Configuration();//I/O配置

            USART_Configuration();//串口配置

            /*指示燈初始化------------------------------------------------------------*/

            GPIO_SetBits(GPIOA,GPIO_Pin_12);//熄滅LED1

            GPIO_SetBits(GPIOA,GPIO_Pin_15);//熄滅LED2

            while(1)

            {

            i++;

            if(500000==i)//LED1閃爍,表示正常。

            {

            GPIO_WriteBit(GPIOA,GPIO_Pin_12,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_12)));

            i=0;

            }

            }

            }

            /******************************************************************************************

            *函數(shù)名稱:RCC_Configuration

            *功能描述:

            *參數(shù):

            *

            *返回值:

            *作者:

            *創(chuàng)建日期:2013年5月2日

            *全局變量

            *全局靜態(tài)變量:

            *局部靜態(tài)變量:

            ******************************************************************************************/

            voidRCC_Configuration(void)

            {

            /*RCCsystemreset(fordebugpurpose)*/

            RCC_DeInit();//RCC系統(tǒng)初始化,設為默認值

            /*EnableHSE*/

            RCC_HSEConfig(RCC_HSE_ON);//使能外部晶振(8MHz),關閉旁路

            /*WaittillHSEisready*/

            HSEStartUpStatus=RCC_WaitForHSEStartUp();//等待外部高速時鐘穩(wěn)定

            if(HSEStartUpStatus==SUCCESS)//時鐘就緒成功

            {

            /*EnablePrefetchBuffer*/

            /*AHB預分頻系數(shù)不為1時,必須置預取緩沖區(qū)處于開啟狀態(tài)

            應與閃存存儲器的訪問時間一起使用

            激活和禁止預取模式時應該在禁止快速時鐘時進行(關閉AHB的分頻器)*/

            FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//

            /*HCLK=SYSCLK*/

            RCC_HCLKConfig(RCC_SYSCLK_Div1);//SYSCLK不分頻,作為AHB時鐘(HCLK,閃存、SRAM等外設時鐘設置):36M

            /*PCLK2=HCLK*/

            RCC_PCLK2Config(RCC_HCLK_Div1);//AHBCLK不分頻,作為高速APB(APB2)時鐘(PCLK2):36M

            /*PCLK1=HCLK/2*/

            RCC_PCLK1Config(RCC_HCLK_Div1);//AHBCLK二分頻,作為低速APB(APB1)時鐘(PCLK1):36M

            /*ADCCLK=PCLK2/6*/

            RCC_ADCCLKConfig(RCC_PCLK2_Div6);//PCLK26分頻,作為ADC時鐘(ADCCLK):6M

            /*Flash2waitstate*/

            /*(SYSCLK)頻率與閃存訪問時間的關系:

            0等待周期,當0

            1等待周期,當24MHz

            2等待周期,當48MHz

            */

            FLASH_SetLatency(FLASH_Latency_1);//設置1個等待周期

            /*PLLCLK=8MHz/2*9=36MHz*/

            RCC_PLLConfig(RCC_PLLSource_HSE_Div2,RCC_PLLMul_9);//外部時鐘2分頻后,9倍頻(PLL),得36MHz

            /*EnablePLL*/

            RCC_PLLCmd(ENABLE);//使能PLL電路

            /*WaittillPLLisready*/

            while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET)//等待PLL電路就緒

            {

            }

            /*SelectPLLassystemclocksource*/

            RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//選擇PLL倍頻時鐘作為系統(tǒng)時鐘(SYSCLK):36MHz

            /*WaittillPLLisusedassystemclocksource*/

            while(RCC_GetSYSCLKSource()!=0x08)//等待PLL切換成系統(tǒng)時鐘源

            {

            }

            /*SelectHSEassystemclocksource*/

            //RCC_SYSCLKConfig(RCC_SYSCLKSource_HSE);//選擇外部晶振作為系統(tǒng)時鐘源(SYSCLK)

            /*WaittillHSEisusedassystemclocksource*/

            //while(RCC_GetSYSCLKSource()!=0x04)//等待HSE切換成系統(tǒng)時鐘源,并作為輸出時鐘(該時鐘可能會有毛刺,僅作調試)

            //{

            //}

            }

            /*GPIOA、GPIOB、GPIOC、GPIOD、GPIOE、GPIOF、AFIO時鐘使能*/

            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOC

            |RCC_APB2Periph_GPIOD|RCC_APB2Periph_GPIOE|RCC_APB2Periph_GPIOF|RCC_APB2Periph_AFIO,ENABLE);

            /*USART3Periphclockenable*/

            RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE);//USART3時鐘使能(APB2)

            }

            /******************************************************************************************

            *函數(shù)名稱:NVIC_Configuraion

            *功能描述:

            *參數(shù):

            *

            *返回值:

            *作者:

            *創(chuàng)建日期:2013年5月2日

            *全局變量:

            *全局靜態(tài)變量:

            *局部靜態(tài)變量:

            ******************************************************************************************/

            voidNVIC_Configuration(void)

            {

            NVIC_InitTypeDefNVIC_InitStructure;

            #ifdefVECT_TAB_RAM

            /*SettheVectorTablebaselocationat0x20000000*/

            NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);//RAM

            #else/*VECT_TAB_FLASH*/

            /*SettheVectorTablebaselocationat0x08000000*/

            NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);//FLASH

            #endif

            NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//選擇第2組為優(yōu)先級分組方式:高2位指定搶占優(yōu)先級,低2位指定響應優(yōu)先級

            /*enablinginterrupt*/

            NVIC_InitStructure.NVIC_IRQChannel=USART3_IRQChannel;//USART中斷

            NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//占先級為0級,最高

            NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;//響應級最高0

            NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//啟動中斷

            NVIC_Init(&NVIC_InitStructure);//初始化嵌套向量中斷控制器

            }

            /******************************************************************************************

            *函數(shù)名稱:GPIO_Configuration

            *功能描述:

            *參數(shù):

            *

            *返回值:

            *作者:

            *創(chuàng)建日期:2013年5月2日

            *全局變量:

            *全局靜態(tài)變量:

            *局部靜態(tài)變量:

            ******************************************************************************************/

            voidGPIO_Configuration(void)

            {

            GPIO_InitTypeDefGPIO_InitStructure;

            GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//關掉JTAG,釋放PA15,PB3,PB4

            GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_15;

            GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽輸出

            GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

            GPIO_Init(GPIOA,&GPIO_InitStructure);

            /*ConfigureUSART3Tx(PB.10)asalternatefunctionpush-pull*/

            GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;

            GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

            GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;

            GPIO_Init(GPIOB,&GPIO_InitStructure);

            /*ConfigureUSART3Rx(PB.11)asinputfloating*/

            GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;

            GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;

            GPIO_Init(GPIOB,&GPIO_InitStructure);//RX初始化

            }

            /******************************************************************************************

            *函數(shù)名稱:GPIO_Configuration

            *功能描述:

            *參數(shù):

            *

            *返回值:

            *作者:

            *創(chuàng)建日期:2013年5月2日

            *全局變量:

            *全局靜態(tài)變量:

            *局部靜態(tài)變量:

            ******************************************************************************************/

            voidUSART_Configuration(void)

            {

            USART_InitTypeDefUSART_InitStructure;

            USART_InitStructure.USART_BaudRate=9600;//波特率9600

            USART_InitStructure.USART_WordLength=USART_WordLength_8b;//字符長度

            USART_InitStructure.USART_StopBits=USART_StopBits_1;//停止位

            USART_InitStructure.USART_Parity=USART_Parity_No;//

            USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//硬件流量控制無

            USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;//串口發(fā)送和接收模式

            /*ConfigureUSART3basicandasynchronousparamters*/

            USART_Init(USART3,&USART_InitStructure);//串口初始化

            /*EnableUSART3*/

            USART_Cmd(USART3,ENABLE);//指令打開

            /*EnablesCOMtransmitinterrupt*/

            USART_ITConfig(USART3,USART_IT_TC,ENABLE);//發(fā)送中斷打開

            /*EnablesCOMreceiveinterrupt*/

            USART_ITConfig(USART3,USART_IT_RXNE,ENABLE);//接收中斷打開

            }

            voidDelay(vu32nCount)

            {

            for(;nCount!=0;nCount--);

            }



            評論


            技術專區(qū)

            關閉