使用printf语句向虚拟终端发送字符串

发布者:玉立风华最新更新时间:2022-06-20 来源: eefocus关键字:发送字符串 手机看文章 扫描二维码
随时随地手机看文章

使用printf语句向虚拟终端发送字符串

第一步:增加基本输出库stdio.h

第二步:设置串口参数

第三步:直接在函数中使用printf进行打印


C51单片机如何使用printf

printf函数是调用putchar函数输入的,而putchar应该是先判TI断ti是否为1,不为1则等待为1。 如果为1则清0,然后送出一个字符。因此 你如果直接使用printf函数,你的程序就会在putchar函数中等待ti为1。这时你的程序就相当于直接死掉了。


方法一:删除stdio.h中的putchar函数,重定义putchar函数

#include  

#include  

#include

#define uint unsigned int

#define uchar unsigned char


//毫秒级延时函数

void delay(uint x)

{

uchar i;

while(x--)

{

for(i = 0;i < 120;i++);

}

}


char * mystring()

{

     static char str[20];

      strcpy(str, "hello");

      return str;

}


//字符发送函数

void putchar(uchar data1)  

{

SBUF = data1;             //将待发送的字符送入发送缓冲器

while(!TI);                //等待发送完成

TI = 0;                    //发送中断标志请0

//串口初始化函数

void serial_init()

{

uchar c = 0;

  SCON = 0x50;           //串口方式1 ,允许接收

 TMOD = 0x20;           //T1工作于方式2

 PCON = 0x00;           //波特率不倍增

 TL1 = 0xfd;              

 TH1 = 0xfd;            // 波特率设置为9600

 EA = 1;       //开总中断

ES = 1;                //开串口接收中断

}

//主函数

void main()

{

serial_init(); //串口初始化


 TR1 = 1;             //定时器开启

printf("%sn",mystring());

 delay(50);

while(1);

 

}

重定义putchar后虚拟终端显示字符hello
在这里插入图片描述

方法二 在printf语句前加上TI=1;使得putchar先发送第一个字符

#include  

#include  

#include

#define uint unsigned int

#define uchar unsigned char


void delay(uint x)

{

uchar i;

while(x--)

{

for(i = 0;i < 120;i++);

}

}


char * mystring()

{

    static char str[20];

      strcpy(str, "hello world");

      return str;

}


//串口初始化函数

void serial_init()

{

uchar c = 0;

   SCON = 0x50;           //串口方式1 ,允许接收

 TMOD = 0x20;           //T1工作于方式2

 PCON = 0x00;           //波特率不倍增

 TL1 = 0xfd;              

 TH1 = 0xfd;            // 波特率设置为9600

 EA = 1;       //开总中断

ES = 1;                //开串口接收中断

TR1=1;                 //定时器开启

}

void main()

{

serial_init();

TI=1;//使得putchar可以发送第一个数据 

printf("%sn",mystring());

 delay(50);

 while(1);

}

关键字:发送字符串 引用地址:使用printf语句向虚拟终端发送字符串

上一篇:8位LED循环闪烁+ 外部中断控制LED闪烁
下一篇:c51单片机中断详解

推荐阅读最新更新时间:2024-11-11 11:12

使用printf语句虚拟终端发送字符串
使用printf语句向虚拟终端发送字符串 第一步:增加基本输出库stdio.h 第二步:设置串口参数 第三步:直接在函数中使用printf进行打印 C51单片机如何使用printf printf函数是调用putchar函数输入的,而putchar应该是先判TI断ti是否为1,不为1则等待为1。 如果为1则清0,然后送出一个字符。因此 你如果直接使用printf函数,你的程序就会在putchar函数中等待ti为1。这时你的程序就相当于直接死掉了。 方法一:删除stdio.h中的putchar函数,重定义putchar函数 #include reg51.h #include string.h #include stdio.
[单片机]
使用<font color='red'>printf</font><font color='red'>语句</font>向<font color='red'>虚拟终端</font><font color='red'>发送</font><font color='red'>字符串</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved