学习小记(变参,串口通信)



笔记一
void Uart_Printf(char *fmt,...)
{
    va_list ap;               //fmt之后的就是变参表
    char string[256];


    va_start(ap,fmt);         //ap指向第一个变参  
    vsprintf(string,fmt,ap);  //按照fmt格式拷贝ap到string,
    Uart_SendString(string);
    va_end(ap);               //结束ap的使用
}


/***********************************************************
va_list ,一个变参列表


va_start、vsprintf、va_end 通常一起出现,特别是va_start和va_end是要同时出现的


*************************************************************/








笔记二
/***********************************************************
下面这节代码是S3C2440串口发送数据的,有两个知识点:


1、字符串的结束是先回车在换行


2、串口发送数据不用printf,往它对应的寄存器里填数据即可


***********************************************************/
void Uart_SendByte(int data)
{
    if(whichUart==0)
    {
        if(data=='\n')                    //"\r"回车,先回车在换行"\r"
        {
            while(!(rUTRSTAT0 & 0x2));
           // Delay(1);                 //because the slow response of hyper_terminal 
            WrUTXH0('\r');                //
        }
        while(!(rUTRSTAT0 & 0x2));   //Wait until THR is empty.
      //  Delay(1);
        WrUTXH0(data);
    }
...

}




笔记三
/***************************************************************
两个文件打开函数实例及原型,open是系统调用,fopen是库函数
****************************************************************/
serial_fp = fopen("/etc/tq2440_serial.cfg","r");  
//库函数,打开 
//FILE *fopen(const char *filename, const char *mode)

fd = open("/dev/leds", 0);       
    //系统调用: int open(const char *pathname, int flags)






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值