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

参考

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

51单片机中实际上调用了putchar和串口字符输出函数参考,个人使用这个方式可以正确显示,但在stm32中使用fputc函数重定向实现。
在这里插入图片描述

以51单片机中的程序为例

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

while(1)
	{
			//uart0SendString("start....\n");
		printf("2rfwetgwg\n");
		mDelaymS(1000);
	}

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

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下面的一条注意
在这里插入图片描述

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 10:42:06       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 10:42:06       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 10:42:06       58 阅读
  4. Python语言-面向对象

    2024-07-13 10:42:06       69 阅读

热门阅读

  1. 软件测试面试200问【答案+文档】

    2024-07-13 10:42:06       24 阅读
  2. C++之STL简介

    2024-07-13 10:42:06       24 阅读
  3. Linux——多路IO

    2024-07-13 10:42:06       25 阅读
  4. 【C++】C++中的extern用法

    2024-07-13 10:42:06       22 阅读
  5. 如何理解李彦宏说的“不要卷模型,要卷应用”

    2024-07-13 10:42:06       17 阅读
  6. 2024年,SEC对加密监管的格局将继续演变

    2024-07-13 10:42:06       20 阅读
  7. Python热门面试题一

    2024-07-13 10:42:06       21 阅读
  8. 从零开始学习嵌入式----C语言数组指针

    2024-07-13 10:42:06       26 阅读
  9. 项目开源能够带来什么?从中得到了什么?

    2024-07-13 10:42:06       19 阅读
  10. 使用Spring Boot创建自定义Starter

    2024-07-13 10:42:06       25 阅读