单片机使用printf在串口输出字符串

把字符串使用printf输出的本质

实际上调用了putchar和串口字符输出函数,参考

以51单片机中的程序为例

在主函数中使用printf函数向串口发送字符串,当然保证已经定义好串口的波特率等参数

c 复制代码
while(1)
	{
			//uart0SendString("start....\n");
		printf("2rfwetgwg\n");
		mDelaymS(1000);
	}

下面是对putchar重定向(对函数重新定义),定义串口发送字符函数

c 复制代码
void UART0_SendByte(unsigned char Byte) //向串口发送字符
{
	SBUF = Byte;    //字符放在寄存器中
	while (!TI);  //发送完成
	TI = 0;      //软件清零
}

 char putchar(char c)
 {
  UART0_SendByte(c);  //把字符发送到串口
	 return '1';   //平常用不到输出字符的返回值,这里只是为了满足定义
 }
 

最终串口助手中显示的输出现象

keil中输出格式的不同

以c语言的标准来说,上图中的定义是有问题的,对字符串变量a定义了数字1。但只是从存储数据宽度来看char是8bit位,可以存0-255的无符号整型。只是在显示的时候有问题

下面是keil帮助文档中printf下面的一条注意

相关推荐
韦东山13 分钟前
第5章_Modbus通讯协议
嵌入式硬件·开发·工业控制
阿杰小子1 小时前
Linux内核——Linux内核体系模式(二)
linux·运维·单片机
zeruns8021 小时前
开源205W桌面充电器,140W+65W升降压PD3.1快充模块(2C+1A口),IP6557+IP6538
科技·嵌入式硬件·开源·智能硬件·充电器·快充·英集芯
极客小张3 小时前
STM32实战项目:从零打造GPS蓝牙自行车码表,掌握传感器、蓝牙、Flash存储等核心技术
c语言·单片机·嵌入式硬件·mcu·物联网·算法·智能家居
致亲爱的开心eng小电3 小时前
【stm32】大一上学期笔记复制
笔记·stm32·嵌入式硬件
单片机一哥4 小时前
PHP 比 Java 的开发效率高在哪?
单片机·51单片机
科学的发展-只不过是读大自然写的代码4 小时前
51单片机通过控制寄存器控制设备,那么程序中变量的运算职责由谁完成的呢
单片机·嵌入式硬件·51单片机
人才程序员4 小时前
【51单片机入门】数码管原理
c++·单片机·嵌入式硬件·mcu·51单片机·proteus·c
晨同学03274 小时前
51单片机-让一个LED灯闪烁、流水灯(涉及:设置单片机的延迟函数)
单片机·嵌入式硬件·51单片机
XD7429716365 小时前
【TB作品】打地鼠游戏,ATMEGA16单片机,Proteus仿真 打地鼠游戏
单片机·游戏·proteus·打地鼠