壹:main sscanf sprintf

随手写一段代码,作为博客第一篇,看代码


#include <stdio.h>
#include <memory.h>
#include <string.h>

int main(int,char **);

int main(int argc,char **argv)
{
    char buff[40];
    unsigned int address=0,num=0;
    char *p = "the weather is good\r\n";
    char *Read_Command = "OWIRA=f5N=3";
    char *Write_Command = "OWIWA=a8D=3";

    memset(buff,0,40*sizeof(char)); 
    if(memcmp(Read_Command,"OWIRA",5) == 0)
    {
        sscanf(Read_Command,"OWIRA=%x[^A-N=]",&address);
        sscanf(Read_Command,"OWIRA=%*xN=%d",&num);
        sprintf(buff,"{%x:%d}\r\n",address,num);
        printf("%s",buff);
    }

    if(memcmp(Write_Command,"OWIWA",5) == 0)
    {
        sscanf(Write_Command,"OWIWA=%x[^A-N=]",&address);
        sscanf(Write_Command,"OWIWA=%*xD=%d",&num);
        sprintf(buff,"{%x:%d}\r\n",address,num);
        printf("%s",buff);
    }

    if(argc==4)
    {
        sprintf(buff,"%s %s %s\r\n",argv[1],argv[2],argv[3]);
        printf("%s",buff);
    }
    printf("the weather is good\r\n");

    return 0;
}

代码功能

  • 1:简单的不能再粗暴的上位机和下位机通信协议;
  • 2:“OWIRA=f5N=3”读协议:"OWI"单总线、'R'表示读、'A'表示寄存器地址、N表示读取字节数;
  • 3:"OWIWA=a8D=3"写协议,'D'表示写入的数据,其它同上;
  • 4:此段代码没有实现具体的功能,代码只负责解析协议并打印出来;
  • 5:代码已在ubuntu10.04上验证。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 8086汇编 本笔记是笔者观看小甲鱼老师(鱼C论坛)《零基础入门学习汇编语言》系列视频的笔记,在此感谢他和像他一样...
    Gibbs基阅读 37,462评论 8 114
  • 总线 计算机的各个功能部件通过总线连接在一起构成完整的计算机系统,总线是多个系统功能部件之间进行数据传送的公共通路...
    罗蓁蓁阅读 4,986评论 0 10
  • 什么是嵌入式 IEEE(Institute of Electrical and Electronics Engin...
    Leon_Geo阅读 3,783评论 1 20
  • 1、嵌入式系统的定义 (1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本...
    荣卓然阅读 1,897评论 0 5
  • 六零后的男孩大都有偷瓜果的经历,那是个物质匮乏的年代。温饱已经不是大问题,玉米饼子红薯等好赖能吃饱。衣服...
    胡长溪阅读 372评论 0 3