单片机使用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下面的一条注意

相关推荐
普中科技9 分钟前
【普中STM32F1xx开发攻略--标准库版】-- 第 13 章 STM32 位带操作
stm32·单片机·嵌入式硬件·arm·gpio·普中科技·位带操作
河南博为智能科技有限公司2 小时前
RS485转以太网串口服务器-串口设备联网的理想选择
大数据·服务器·人工智能·单片机·嵌入式硬件·物联网
国科安芯2 小时前
抗辐照MCU芯片在无人叉车领域的性能评估与选型建议
网络·人工智能·单片机·嵌入式硬件·安全
国科安芯3 小时前
抗辐照MCU芯片在激光雷达领域的适配性分析
网络·人工智能·单片机·嵌入式硬件·fpga开发
日更嵌入式的打工仔3 小时前
<RT1176系列14>CCM(Clock Controller Module)解读
单片机·嵌入式硬件
云山工作室4 小时前
基于单片机的环境监测智能报警系统的设计(论文+源码)
stm32·单片机·嵌入式硬件·毕业设计·毕设
齐落山大勇4 小时前
STM32的串口(上位机控制下位机)
stm32·单片机·嵌入式硬件
小尧嵌入式4 小时前
STM32启动汇编文件详解及启动逻辑
汇编·arm开发·stm32·单片机
m0_598250004 小时前
电源完整性07-如何确定PDN网络中的大电容
笔记·单片机·嵌入式硬件·硬件工程
广东小65 小时前
【海思】在Ubuntu20.04上搭建可以成功编译Hi3559AV100的环境_20251104
嵌入式硬件