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

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

?? usart.c

?? STM32+Grlib
?? C
字號:
#include "stm32f10x.h"
#include "fsmc_sram.h"
#include "grlib/grlib.h"
#include "touchstreen.h"

#include "usart.h"
#include "misc.h"
#include "stdarg.h"
#include "lcdhal.h"

void USART_Config(USART_TypeDef* USARTx)
{
	USART_InitTypeDef USART_InitStructure;
  USART_InitStructure.USART_BaudRate = 115200;						//速率115200bps
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;		//數據位8位
  USART_InitStructure.USART_StopBits = USART_StopBits_1;			//停止位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;					//收發模式

  /* Configure USART1 */
  USART_Init(USARTx, &USART_InitStructure);							//配置串口參數函數
 
  
  /* Enable USART1 Receive and Transmit interrupts */
  USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);                    //使能接收中斷
  USART_ITConfig(USART1, USART_IT_TXE, ENABLE);						//使能發送緩沖空中斷   

  /* Enable the USART1 */
  USART_Cmd(USART1, ENABLE);	
}
/****************************************************************************
* 名    稱:void USART_OUT(USART_TypeDef* USARTx, uint8_t *Data,...)
* 功    能:格式化串口輸出函數
* 入口參數:USARTx:  指定串口
			Data:   發送數組
			...:     不定參數
* 出口參數:無
* 說    明:格式化串口輸出函數
        	"\r"	回車符	   USART_OUT(USART1, "abcdefg\r")   
			"\n"	換行符	   USART_OUT(USART1, "abcdefg\r\n")
			"%s"	字符串	   USART_OUT(USART1, "字符串是:%s","abcdefg")
			"%d"	十進制	   USART_OUT(USART1, "a=%d",10)
* 調用方法:無 
****************************************************************************/
void USART_OUT(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;
			}		 
		}
		else USART_SendData(USARTx, *Data++);
		while(USART_GetFlagStatus(USARTx, USART_FLAG_TC)==RESET);
	}
}

/******************************************************
		整形數據轉字符串函數
        char *itoa(int value, char *string, int radix)
		radix=10 標示是10進制	非十進制,轉換結果為0;  

	    例:d=-379;
		執行	itoa(d, buf, 10); 后
		
		buf="-379"							   			  
**********************************************************/
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 */


void USART1_IO_Configuration(void)
{

	GPIO_InitTypeDef GPIO_InitStructure;					
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;	         		 //USART1 TX
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    		 //復用推挽輸出
  GPIO_Init(GPIOA, &GPIO_InitStructure);		    		 //A端口 

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;	         	 //USART1 RX
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;   	 //復用開漏輸入
  GPIO_Init(GPIOA, &GPIO_InitStructure);		         	 //A端口 
}

/****************************************************************************
* 名    稱:void NVIC_Configuration(void)
* 功    能:中斷源配置
* 入口參數:無
* 出口參數:無
* 說    明:
* 調用方法:無 
****************************************************************************/
void USART1_NVIC_Configuration(void)
{
  /*  結構聲明*/
  NVIC_InitTypeDef NVIC_InitStructure;

  /* Configure the NVIC Preemption Priority Bits */  
  /* Configure one bit for preemption priority */
  /* 優先級組 說明了搶占優先級所用的位數,和子優先級所用的位數   在這里是1, 7 */    
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);	  
  

  NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;			     	//設置串口1中斷
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;	     	//搶占優先級 0
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;				//子優先級為0
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;					//使能
  NVIC_Init(&NVIC_InitStructure);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国内精品视频一区二区三区八戒| 亚洲色图视频网| 欧美午夜一区二区三区免费大片| 国产成人夜色高潮福利影视| 日av在线不卡| 久久97超碰国产精品超碰| 毛片av中文字幕一区二区| 日本aⅴ免费视频一区二区三区| 日本女人一区二区三区| 日韩中文字幕av电影| 日韩av中文字幕一区二区三区| 日本中文字幕不卡| 精品一区二区三区不卡| 国产成人av电影在线观看| 国产东北露脸精品视频| www.在线欧美| 欧美日本一区二区三区四区| 91精品国产色综合久久ai换脸| 日韩久久精品一区| 中文在线一区二区| 亚洲高清免费视频| 狠狠狠色丁香婷婷综合激情| 成人午夜精品在线| 欧美三级蜜桃2在线观看| 欧美一级免费观看| 国产精品萝li| 午夜精品福利一区二区三区蜜桃| 日韩国产一区二| 国产精品亚洲成人| 欧美综合亚洲图片综合区| 日韩欧美中文字幕公布| 日本一区二区成人在线| 亚洲午夜精品17c| 激情六月婷婷综合| 在线视频国内自拍亚洲视频| 欧美mv日韩mv| 亚洲与欧洲av电影| 狠狠狠色丁香婷婷综合久久五月| 91在线码无精品| 日韩精品中文字幕一区二区三区| 国产精品美女www爽爽爽| 视频一区国产视频| a级高清视频欧美日韩| 日韩一区二区免费电影| 亚洲日本中文字幕区| 久久99精品久久久久婷婷| 色吊一区二区三区| 久久精品亚洲精品国产欧美| 性感美女极品91精品| 成人激情免费网站| 日韩写真欧美这视频| 亚洲永久精品大片| 99久久精品国产导航| 精品99一区二区三区| 午夜日韩在线电影| 色偷偷久久人人79超碰人人澡 | 亚洲精品一区二区三区四区高清 | 91在线免费视频观看| 精品国精品国产尤物美女| 亚洲成人动漫在线免费观看| 白白色 亚洲乱淫| 久久免费美女视频| 免费高清视频精品| 欧美在线三级电影| 亚洲欧美日韩综合aⅴ视频| 国产91精品一区二区麻豆网站 | 一个色妞综合视频在线观看| 粉嫩一区二区三区性色av| 精品成人一区二区三区| 强制捆绑调教一区二区| 欧美日韩国产片| 亚洲永久精品大片| 欧美视频完全免费看| 一区二区欧美精品| 欧美午夜一区二区| 亚洲国产精品自拍| 欧美高清视频不卡网| 亚洲国产视频直播| 欧美剧情片在线观看| 婷婷开心久久网| 欧美夫妻性生活| 免费看欧美女人艹b| 制服丝袜亚洲色图| 久久精品99久久久| 欧美mv日韩mv国产网站| 国产麻豆精品在线| 国产欧美一区二区在线观看| 成人爽a毛片一区二区免费| 国产精品少妇自拍| 一本到高清视频免费精品| 一区二区三区四区国产精品| 欧美无砖专区一中文字| 婷婷激情综合网| 精品国产一二三区| 国产.欧美.日韩| 亚洲女人的天堂| 精品视频一区二区三区免费| 蜜臀精品久久久久久蜜臀| 26uuuu精品一区二区| 成人激情综合网站| 亚洲一二三四久久| 精品国产髙清在线看国产毛片| 国产精品自在欧美一区| 亚洲精选视频在线| 欧美一区二区在线免费观看| 国产一区二区女| 亚洲精品国产精华液| 欧美一区二区三区男人的天堂| 国产一区二区美女| 亚洲影视资源网| 久久久久久久久久久99999| 成人深夜福利app| 日本视频在线一区| 国产精品不卡在线| 日韩一卡二卡三卡四卡| av色综合久久天堂av综合| 天堂一区二区在线| 国产精品久久久爽爽爽麻豆色哟哟| 欧美日韩精品一区二区三区蜜桃| 国产成人亚洲综合a∨婷婷图片 | 亚洲国产欧美另类丝袜| 久久久国产精品不卡| 欧美三级电影精品| 成人午夜激情影院| 精品一区二区三区影院在线午夜| 日韩一区日韩二区| 久久噜噜亚洲综合| 欧美一区二区三区视频在线| 99re6这里只有精品视频在线观看| 喷水一区二区三区| 亚洲乱码国产乱码精品精98午夜 | 欧美一区二区三区成人| 91在线观看美女| 国产激情一区二区三区| 日韩成人免费看| 亚洲国产一区二区三区青草影视| 中文字幕在线不卡一区| 久久人人爽爽爽人久久久| 91精品中文字幕一区二区三区| 91美女片黄在线观看91美女| 国产精品456| 黄色成人免费在线| 美女在线观看视频一区二区| 亚洲123区在线观看| 亚洲综合另类小说| 一区二区三区高清不卡| 亚洲欧美综合另类在线卡通| 久久久久久久免费视频了| 日韩欧美一区二区免费| 日韩一二在线观看| 日韩一区二区三区四区| 日韩欧美色电影| 日韩美一区二区三区| 91精选在线观看| 日韩欧美成人午夜| 精品久久久久久久久久久久久久久 | 精品免费一区二区三区| 欧美一区二区三区的| 日韩三级免费观看| 日韩精品中文字幕在线不卡尤物 | 不卡电影一区二区三区| 成人激情av网| 99精品偷自拍| 欧亚洲嫩模精品一区三区| 91网址在线看| 精品视频999| 日韩欧美成人一区二区| www国产亚洲精品久久麻豆| 久久看人人爽人人| 中文字幕永久在线不卡| 一区二区三区**美女毛片| 天堂精品中文字幕在线| 久久国产尿小便嘘嘘尿| 国产福利一区二区三区视频在线| 成人av在线资源| 欧美三区在线视频| 日韩一区二区麻豆国产| 国产校园另类小说区| 亚洲人成伊人成综合网小说| 五月婷婷激情综合| 国产精品一二三四区| 成人av电影在线| 678五月天丁香亚洲综合网| 久久亚洲精精品中文字幕早川悠里 | 卡一卡二国产精品 | 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 美腿丝袜亚洲三区| 成人黄色小视频在线观看| 欧美性猛片xxxx免费看久爱| 欧美电影免费观看高清完整版 | 五月天亚洲精品| 国产成人在线色| 在线成人小视频| 国产精品久久久久久久久免费樱桃 | 亚洲国产经典视频| 午夜视频一区二区| 91亚洲精品一区二区乱码| 欧美大片顶级少妇| 亚洲一区二区三区自拍| 懂色av一区二区三区免费看|