亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? +

?? STM32的恒溫消毒柜設計
??
字號:
/******************** CHD1807 Team**************************
 * 文件名  :usart1.c
 * 描述    :將printf函數重定向到USART1。這樣就可以用printf函數將單片機的數據
 *           打印到PC上的超級終端或串口調試助手。         
 * 實驗平臺:CHD1807-STM32開發板
 * 硬件連接:------------------------
 *          | PA9  - USART1(Tx)      |
 *          | PA10 - USART1(Rx)      |
 *           ------------------------
 * 庫版本  :ST3.5.0
**********************************************************************************/

#include "usart1.h"
#include <stdarg.h>
							
/*
 * 函數名:USART1_Config
 * 描述  :USART1 GPIO 配置,工作模式配置。115200 8-N-1
 * 輸入  :無
 * 輸出  : 無
 * 調用  :外部調用
 */
void USART1_Config(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;

	/* config USART1 clock */
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);

	/* USART1 GPIO config */
   /* Configure USART1 Tx (PA.09) as alternate function push-pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOA, &GPIO_InitStructure);    
  /* Configure USART1 Rx (PA.10) as input floating */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
	  
	/* USART1 mode config */
	USART_InitStructure.USART_BaudRate = 115200;
	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_Cmd(USART1, ENABLE);
}

/*
 * 函數名:fputc
 * 描述  :重定向c庫函數printf到USART1
 * 輸入  :無
 * 輸出  :無
 * 調用  :由printf調用
 */
int fputc(int ch, FILE *f)
{
/* 將Printf內容發往串口 */
  USART_SendData(USART1, (unsigned char) ch);
  while (!(USART1->SR & USART_FLAG_TXE));
 
  return (ch);
}

/*
 * 函數名:itoa
 * 描述  :將整形數據轉換成字符串
 * 輸入  :-radix =10 表示10進制,其他結果為0
 *         -value 要轉換的整形數
 *         -buf 轉換后的字符串
 *         -radix = 10
 * 輸出  :無
 * 返回  :無
 * 調用  :被USART1_printf()調用
 */
static char *itoa(int value, char *string, int radix)
{
    int     i, d;
    int     flag = 0;
    char    *ptr = string;

    /* This implementation only works for decimal numbers. */
    if (radix != 10)
    {
        *ptr = 0;
        return string;
    }

    if (!value)
    {
        *ptr++ = 0x30;
        *ptr = 0;
        return string;
    }

    /* if this is a negative value insert the minus sign. */
    if (value < 0)
    {
        *ptr++ = '-';

        /* Make the value positive. */
        value *= -1;
    }

    for (i = 10000; i > 0; i /= 10)
    {
        d = value / i;

        if (d || flag)
        {
            *ptr++ = (char)(d + 0x30);
            value -= (d * i);
            flag = 1;
        }
    }

    /* Null terminate the string. */
    *ptr = 0;

    return string;

} /* NCL_Itoa */

/*
 * 函數名:USART1_printf
 * 描述  :格式化輸出,類似于C庫中的printf,但這里沒有用到C庫
 * 輸入  :-USARTx 串口通道,這里只用到了串口1,即USART1
 *		     -Data   要發送到串口的內容的指針
 *			   -...    其他參數
 * 輸出  :無
 * 返回  :無 
 * 調用  :外部調用
 *         典型應用USART1_printf( USART1, "\r\n this is a demo \r\n" );
 *            		 USART1_printf( USART1, "\r\n %d \r\n", i );
 *            		 USART1_printf( USART1, "\r\n %s \r\n", j );
 */
void USART1_printf(USART_TypeDef* USARTx, uint8_t *Data,...)
{
	const char *s;
  int d;   
  char buf[16];

  va_list ap;
  va_start(ap, Data);

	while ( *Data != 0)     // 判斷是否到達字符串結束符
	{				                          
		if ( *Data == 0x5c )  //'\'
		{									  
			switch ( *++Data )
			{
				case 'r':							          //回車符
					USART_SendData(USARTx, 0x0d);
					Data ++;
					break;

				case 'n':							          //換行符
					USART_SendData(USARTx, 0x0a);	
					Data ++;
					break;
				
				default:
					Data ++;
				    break;
			}			 
		}
		else if ( *Data == '%')
		{									  //
			switch ( *++Data )
			{				
				case 's':										  //字符串
					s = va_arg(ap, const char *);
          for ( ; *s; s++) 
					{
						USART_SendData(USARTx,*s);
						while( USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET );
          }
					Data++;
          break;

        case 'd':										//十進制
          d = va_arg(ap, int);
          itoa(d, buf, 10);
          for (s = buf; *s; s++) 
					{
						USART_SendData(USARTx,*s);
						while( USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET );
          }
					Data++;
          break;
				 default:
						Data++;
				    break;
			}		 
		} /* end of else if */
		else USART_SendData(USARTx, *Data++);
		while( USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET );
	}
}
/******************* CHD1807 Team *****END OF FILE************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线免费亚洲电影| 国产在线精品一区二区夜色| 日韩精品中文字幕在线一区| 欧美三级蜜桃2在线观看| 91国产免费看| 欧美在线短视频| 欧美三电影在线| 日韩欧美电影一区| 精品99999| 精品国产麻豆免费人成网站| 精品免费视频.| 国产欧美精品一区| 亚洲欧洲在线观看av| 亚洲最大成人网4388xx| 亚洲一二三四久久| 欧美a级理论片| 国内精品第一页| 成人免费看片app下载| 99精品久久只有精品| 色婷婷av久久久久久久| 欧美日韩国产在线观看| 精品免费国产二区三区| 中文字幕不卡三区| 悠悠色在线精品| 免费成人性网站| 大尺度一区二区| 在线亚洲高清视频| 精品久久国产老人久久综合| 国产无一区二区| 亚洲线精品一区二区三区八戒| 日韩av中文在线观看| 国产成人精品影视| 欧美性色aⅴ视频一区日韩精品| 91精品国产一区二区三区| 国产日产欧美精品一区二区三区| 伊人婷婷欧美激情| 国内精品伊人久久久久影院对白| 亚洲成人免费在线观看| aaa亚洲精品一二三区| 国产精品高潮呻吟| 91捆绑美女网站| 亚洲最大的成人av| 91精品久久久久久久久99蜜臂| 亚洲第四色夜色| 91精品国产综合久久婷婷香蕉 | 久久―日本道色综合久久| 免费国产亚洲视频| 欧美xxxx老人做受| 国产福利不卡视频| 中文成人综合网| 色猫猫国产区一区二在线视频| 亚洲精品免费在线播放| 色哟哟国产精品免费观看| 亚洲国产一区视频| 欧美一级一区二区| 国产激情精品久久久第一区二区| 中文字幕精品一区二区三区精品| 99免费精品在线观看| 一区二区三区中文字幕| 777奇米四色成人影色区| 国内成+人亚洲+欧美+综合在线| 亚洲一区二区视频| 91麻豆精品国产无毒不卡在线观看| 日韩av电影免费观看高清完整版| 欧美r级在线观看| 成人丝袜18视频在线观看| 一区二区日韩电影| 精品福利一区二区三区| 91在线国内视频| 免费日本视频一区| 国产精品美女久久久久aⅴ国产馆| 色婷婷亚洲精品| 国产一区二区精品久久| 樱花影视一区二区| 久久久久久免费| 欧美视频一区二区在线观看| 久久精品72免费观看| 亚洲精品视频在线观看免费| 精品国产免费人成在线观看| 91久久精品午夜一区二区| 精品无人区卡一卡二卡三乱码免费卡 | 欧美精品乱码久久久久久| 国产精品激情偷乱一区二区∴| 国产成人精品影视| 国产精品乱人伦| 99r国产精品| 亚洲人成网站精品片在线观看| 色综合天天视频在线观看| 一区二区不卡在线播放| 色偷偷成人一区二区三区91| 亚洲一区自拍偷拍| 欧美日韩精品欧美日韩精品一综合| 亚洲一区二区av在线| 91麻豆精品国产| 激情久久五月天| 国产精品九色蝌蚪自拍| 欧美亚洲愉拍一区二区| 免费黄网站欧美| 国产精品污网站| 欧美性视频一区二区三区| 日av在线不卡| 国产精品久线在线观看| 欧美在线免费视屏| 国内成人免费视频| 亚洲卡通欧美制服中文| 8x8x8国产精品| 国产成人av电影| 亚洲在线免费播放| 精品久久人人做人人爰| av在线不卡电影| 日韩av午夜在线观看| 久久久久国产精品麻豆| 欧美吻胸吃奶大尺度电影| 久久精品国产亚洲一区二区三区| 中文欧美字幕免费| 欧美老肥妇做.爰bbww视频| 激情六月婷婷久久| 亚洲第一福利一区| 亚洲欧洲av另类| 日韩精品一区二区三区四区 | 日欧美一区二区| 国产精品丝袜久久久久久app| 欧美综合欧美视频| 国产风韵犹存在线视精品| 亚洲成人在线网站| 国产精品女主播av| 日韩视频永久免费| 欧美在线视频日韩| 9i在线看片成人免费| 国内成人免费视频| 日韩电影在线看| 玉足女爽爽91| 国产精品美女久久久久久久久 | 免费欧美日韩国产三级电影| 亚洲美女在线国产| 久久综合色鬼综合色| 欧美日韩欧美一区二区| 91啪在线观看| av亚洲精华国产精华精| 国产做a爰片久久毛片| 老鸭窝一区二区久久精品| 亚洲午夜激情网页| 亚洲男人的天堂在线观看| 国产午夜精品一区二区 | 大白屁股一区二区视频| 久久精品国产色蜜蜜麻豆| 午夜免费欧美电影| 亚洲五月六月丁香激情| 亚洲人成在线观看一区二区| 久久久久久麻豆| 久久久久久亚洲综合| 久久久久久久综合日本| 国产日本欧美一区二区| 久久久www免费人成精品| 久久这里只有精品6| 精品福利一区二区三区| 26uuu精品一区二区 | 国产成人啪免费观看软件| 精品中文字幕一区二区| 久久99热99| 国产另类ts人妖一区二区| 国产精品综合视频| 粉嫩蜜臀av国产精品网站| 成人午夜激情在线| 91小视频在线| 欧美色爱综合网| 日韩欧美一级精品久久| 欧美电影免费观看完整版| 精品国产电影一区二区| 欧美极品aⅴ影院| 亚洲码国产岛国毛片在线| 樱花草国产18久久久久| 日本亚洲免费观看| 色www精品视频在线观看| 久久久99精品久久| 奇米四色…亚洲| 亚洲不卡一区二区三区| 亚洲激情自拍视频| 日韩影院免费视频| 经典三级一区二区| 99re视频这里只有精品| 欧美四级电影在线观看| 日韩一区二区影院| 国产精品的网站| 天天影视色香欲综合网老头| 国产一区不卡视频| 色94色欧美sute亚洲线路一久| 777亚洲妇女| 国产精品全国免费观看高清| 亚洲国产视频网站| 国产麻豆精品theporn| 91视频.com| 精品理论电影在线| 一区二区激情小说| 国产成人aaaa| 日韩精品中午字幕| 亚洲一二三区视频在线观看| 国产成+人+日韩+欧美+亚洲| 欧美三级在线视频| 亚洲欧洲日本在线|