在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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) > 設(shè)計應(yīng)用 > stm32 printf輸出到USART1

            stm32 printf輸出到USART1

            作者: 時間:2016-12-01 來源:網(wǎng)絡(luò) 收藏


            /************************頭文件*****************************************/

            本文引用地址:http://www.biyoush.com/article/201612/324559.htm

            #include"stm32f10x_lib.h"http://包含所有的頭文件
            #include

            /*******************************位綁定定義*****************************************/
            //#define GPIOA_ODR_A (GPIOA_BASE+0x0C)
            //#define GPIOA_IDR_A (GPIOA_BASE+0x08)
            //#define GPIOB_ODR_A (GPIOB_BASE+0x0C)
            //#define GPIOB_IDR_A (GPIOB_BASE+0x08)
            //#define GPIOC_ODR_A (GPIOC_BASE+0x0C)
            //#define GPIOC_IDR_A (GPIOC_BASE+0x08)
            //#define GPIOD_ODR_A (GPIOD_BASE+0x0C)
            //#define GPIOD_IDR_A (GPIOD_BASE+0x08)
            //#define GPIOE_ODR_A (GPIOE_BASE+0x0C)
            //#define GPIOE_IDR_A (GPIOE_BASE+0x08)
            //
            //#define BitBand(Addr,BitNum) *((volatile unsignedlong*)((Addr&0xF0000000)+0x2000000+((Addr&0xfffff)<<5)+(BitNum<<2)))
            //
            //#define PAout(n) BitBand(GPIOA_ODR_A,n)
            //#define PAin(n) BitBand(GPIOA_IDR_A,n)
            //#define PBout(n) BitBand(GPIOB_ODR_A,n)
            //#define PBin(n) BitBand(GPIOB_IDR_A,n)
            //#define PCout(n) BitBand(GPIOC_ODR_A,n)
            //#define PCin(n) BitBand(GPIOC_IDR_A,n)
            //#define PDout(n) BitBand(GPIOD_ODR_A,n)
            //#define PDin(n) BitBand(GPIOD_IDR_A,n)
            //#define PEout(n) BitBand(GPIOE_ODR_A,n)
            //#define PEin(n) BitBand(GPIOE_IDR_A,n)


            /*******************************************************************************/
            /*函數(shù)名 : RCC_Configuration */
            /* 功能 : 初始化外部時鐘 */
            /* 輸入 : None */
            /* 輸出 : None */
            /* 返回 : None */
            /********************************************************************************/
            void RCC_Configuration(void)
            {
            //----------使用外部RC晶振-----------
            RCC_DeInit();//初始化為缺省值
            RCC_HSEConfig(RCC_HSE_ON);//使能外部的高速時鐘
            while(RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);//等待外部高速時鐘使能就緒
            FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);//使能預(yù)取指緩存
            FLASH_SetLatency(FLASH_Latency_2);//設(shè)置FLASH存儲器2延時周期
            RCC_HCLKConfig(RCC_SYSCLK_Div1);//AHB時鐘等于系統(tǒng)時鐘HCLK = SYSCLK
            RCC_PCLK2Config(RCC_HCLK_Div1);//高速AHB時鐘(PCLK2)PCLK2 = HCLK
            RCC_PCLK1Config(RCC_HCLK_Div2);//低速AHB時鐘(PCLK1)PCLK1 = HCLK/2
            RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);//PLLCLK = 8MHZ * 9 =72MHZ
            RCC_PLLCmd(ENABLE);//Enable PLLCLK
            while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);//等待 PLLCLK 準備好
            RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//選擇 PLL 為系統(tǒng)時鐘
            while(RCC_GetSYSCLKSource()!=0x08);//等待系統(tǒng)使用PLL為系統(tǒng)時鐘
            //---------打開相應(yīng)外設(shè)時鐘--------------------
            RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO | RCC_APB2Periph_USART1, ENABLE );
            }


            /*******************************************************************************/
            /*函數(shù)名 : GPIO_Configuration */
            /* 功能 : 初始化GPIO外設(shè) */
            /* 輸入 : None */
            /* 輸出 : None */
            /* 返回 : None */
            /*******************************************************************************/
            void GPIO_Configuration(void)
            {
            GPIO_InitTypeDefGPIO;

            GPIO.GPIO_Pin =GPIO_Pin_9;
            GPIO.GPIO_Speed =GPIO_Speed_50MHz;
            GPIO.GPIO_Mode = GPIO_Mode_AF_PP;
            GPIO_Init(GPIOA,&GPIO);//端口初始化

            GPIO.GPIO_Pin =GPIO_Pin_10;

            GPIO.GPIO_Mode = GPIO_Mode_IN_FLOATING;
            GPIO_Init(GPIOA,&GPIO);//端口初始化
            }

            /*******************************************************************************/
            /*函數(shù)名 : Delay_MS */
            /* 功能 : 軟件延時 */
            /* 輸入 : 1ms */
            /* 輸出 : None */
            /* 返回 : None */
            /*******************************************************************************/
            void Delay_MS(u16 dly)
            {
            u16 i,j;
            for(i=0;ifor(j=1000;j>0;j--);
            }


            void USART_Configuration(void)//初始化USART
            {USART_InitTypeDef USART_InitStructure;//聲明參數(shù)結(jié)構(gòu)
            USART_InitStructure.USART_BaudRate = 9600;//速率9600
            USART_InitStructure.USART_WordLength = USART_WordLength_8b;//數(shù)據(jù)長度
            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ā)送接收使能
            USART_Init(USART1, &USART_InitStructure);//根據(jù)USART_InitStruct中指定的參數(shù)初始化外設(shè)USART1寄存器

            USART_Cmd(USART1,ENABLE);//開啟USART外設(shè)


            }
            /*******************************************************************************/
            /*函數(shù)名 : fputc */
            /* 功能 : 重定向printf輸出到USART1 */
            /* 輸入 : int ch 字符 FILE *f 文件指針 */
            /* 輸出 : ch */
            /* 返回 : ch */
            /********************************************************************************/


            int fputc(int ch,FILE *f)
            {
            //ch送給USART1
            USART_SendData(USART1, ch);
            //等待發(fā)送完畢
            while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET) {}
            //返回ch
            return(ch);
            }
            /*******************************************************************************/
            /* 函數(shù)名 : main */
            /* 功能 : 主函數(shù) */
            /* 輸入 : None */
            /* 輸出 : None */
            /* 返回 : None */
            /*******************************************************************************/
            int main(void)
            {

            u8 i=58;
            RCC_Configuration();
            GPIO_Configuration();
            USART_Configuration();

            while(1)
            {

            printf("qq 2519286938");
            printf("i value is %d",i);
            printf("i value is %o",i);
            printf("i value is %d, %d",i+i,i*i);
            printf("-----------------------------");


            }

            }



            關(guān)鍵詞: stm32printf輸出USART

            評論


            技術(shù)專區(qū)

            關(guān)閉