狠狠做深爱婷婷久久一区,欧美日韩国内,久久麻豆精品传媒,久久久一区一区二区,色鬼伦理片,99视频精品久久,久久精品国产久久久久久,久久久伦理电影一区二,磁力天堂河北彩花

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > avr單片機(jī) 串口實(shí)現(xiàn)printf(使用變參函數(shù))

avr單片機(jī) 串口實(shí)現(xiàn)printf(使用變參函數(shù))

作者: 時(shí)間:2018-09-14 來源:網(wǎng)絡(luò) 收藏

#include

本文引用地址:http://www.chinabohe.com/article/201809/389165.htm

#include

#include

typedef unsigned char uint8;

static void usart_init(void)

{

UCSRA = 0x02;

UCSRB = 0x18;

UCSRC = 0x06;

UBRRH = 0x00;

UBRRL = 103;

}

static void put_char(uint8 data)

{

if (data == '/r')

put_char(0x09);

while ( !(UCSRA (1

;

UDR = data;

}

static void my(const char* fmt,...)

{

const char* s;

int d;

char buf[16];

va_list ap;

va_start(ap,fmt); // 將ap指向fmt(即可變參數(shù)的第一個(gè)?下一個(gè)?)

while (*fmt)

{

if (*fmt != '%')

{

put_char(*fmt++); // 正常發(fā)送

continue;

}

switch (*++fmt) // next %

{

case 's':

s = va_arg(ap,const char*); // 將ap指向者轉(zhuǎn)成char*型,并返回之

for (; *s; s++)

put_char(*s);

break;

case 'x':

d = va_arg(ap,int); // 將ap指向者轉(zhuǎn)成int型,并返回之

itoa(d,buf,16); // 將整型d以16進(jìn)制轉(zhuǎn)到buf中

for (s = buf; *s; s++)

put_char(*s);

break;

case 'd':

d = va_arg(ap,int);

itoa(d,buf,10); // 將整型d以10進(jìn)制轉(zhuǎn)到buf中

for (s = buf; *s; s++)

put_char(*s);

break;

default:

put_char(*fmt);

break;

}

fmt++;

}

va_end(ap);

}

int main(void)

{

usart_init(); // 初始化

uint8 i = 100;

uint8* s = Word!;

while(1)

{

my(/n/rHello %s/n/r0x%x = %d/n,s,i,i);

}

return 0;

}



評論


相關(guān)推薦

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

關(guān)閉
遂平县| 清涧县| 仁布县| 焦作市| 广平县| 达拉特旗| 北流市| 萝北县| 呼和浩特市| 钦州市| 景洪市| 老河口市| 海兴县| 丹棱县| 廉江市| 大余县| 浮山县| 门头沟区| 偃师市| 大同县| 都昌县| 青浦区| 金溪县| 永济市| 高州市| 麦盖提县| 夹江县| 乌鲁木齐市| 常山县| 顺义区| 桦南县| 涡阳县| 福贡县| 尼木县| 三门峡市| 百色市| 荔浦县| 增城市| 板桥市| 桂平市| 即墨市|