stc单片机使用printf()函数打印

本文介绍了如何使用STC-ISP工具生成串口初始化代码,并在C语言程序中设置波特率、定时器及中断,确保printf函数能够正常输出。通过设置SCON、AUXR、TMOD等寄存器,并启动定时器,实现9600bps的串口通信。同时强调了在串口初始化函数中添加TI=1的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 串口波特率初始化:
    利用stc-isp工具生成初始化代码,
    在这里插入图片描述

  2. 在串口初始化函数中添加 **TI=1;**如下图,否则printf()无法输出。

void UartInit(void)		//9600bps@22.1184MHz
{
	PCON |= 0x80;		//使能波特率倍速位SMOD
	SCON = 0x50;		//8位数据,可变波特率
	AUXR |= 0x40;		//定时器时钟1T模式
	AUXR &= 0xFE;		//串口1选择定时器1为波特率发生器
	TMOD &= 0x0F;		//设置定时器模式
	TMOD |= 0x20;		//设置定时器模式
	TL1 = 0x70;		//设置定时初始值
	TH1 = 0x70;		//设置定时重载值
	ET1 = 0;		//禁止定时器%d中断
	TR1 = 1;		//定时器1开始计时 
	
    TI=1;           
}
  1. 在主函数中使用printf()函数。
void main()
{
    UartInit();
	while(1)
	{
		printf("test\r\n");
	    delay(500);
	}
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值