久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

stm32 printf輸出到USART1

作者:佚名   來源:本站原創   點擊數:  更新時間:2014年03月14日   【字體:



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

#include"stm32f10x_lib.h" //包含所有的頭文件
#include<stdio.h>

 

/*******************************位綁定定義*****************************************/
//#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 unsigned long *)((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)


/*******************************************************************************/
/* 函數名  : 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); //使能預取指緩存
FLASH_SetLatency(FLASH_Latency_2); //設置FLASH存儲器2延時周期
RCC_HCLKConfig(RCC_SYSCLK_Div1); //AHB時鐘等于系統時鐘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 為系統時鐘
while(RCC_GetSYSCLKSource()!=0x08); //等待系統使用PLL為系統時鐘
//---------打開相應外設時鐘--------------------
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO | RCC_APB2Periph_USART1,  ENABLE );
}


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

 

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); //端口初始化
}

 

 

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


void USART_Configuration(void) //初始化USART
{ USART_InitTypeDef USART_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; //發送接收使能
USART_Init(USART1, &USART_InitStructure); //根據USART_InitStruct中指定的參數初始化外設USART1寄存器

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


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


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

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

 

while(1)
{
 
    printf("\n\tqq 2519286938");
printf("\n\ti value is   %d",i);
printf("\n\ti value is   %o",i);
printf("\n\ti value is   %d,  %d",i+i,i*i);
printf("\n\t-----------------------------");


}

}

關閉窗口

相關文章

主站蜘蛛池模板: 一区二区三区四区在线视频 | 精品中文视频 | 麻豆av网站| 欧美日韩在线视频一区 | 91av国产在线视频 | 中国av在线免费观看 | 国产午夜精品久久久 | 91动漫在线观看 | 国产精品久久久久久久久久免费看 | 伊人在线| 亚洲国产精品一区 | 免费a大片 | 黄色片免费 | 91天堂网| 中文字幕成人av | 欧美精品99 | 久久777| 日本精品久久久久久久 | 国产资源视频 | 欧美一区二区在线免费观看 | 国产一区二区三区色淫影院 | av免费入口 | 91麻豆精品国产91久久久更新资源速度超快 | 国产电影一区二区三区爱妃记 | 99精品一区二区三区 | 日韩欧美国产一区二区三区 | 精精久久 | 东京av男人的天堂 | 欧美综合精品 | 99综合在线 | 国产精品美女久久久久久免费 | 精品久久久久久 | 日本精品一区二区三区在线观看 | 国产午夜精品一区二区三区 | 亚洲一区精品在线 | 国内精品久久精品 | 天天操天天操 | 国产精品色 | 亚洲巨乳自拍在线视频 | 国产一区影院 | 久久精品视频9 |