Arduino代码机制-Serial上

本文介绍了Arduino中Serial通信的重要性,详细讲解了Print类的功能,包括write、print和println方法,以及它们的区别。通过实例展示了如何使用串口调试,并分析了不同类型参数在print方法中的表现差异。

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

串口调试是个非常有用的调试技巧,可以在程序中是有Serial.print()输出关键信息,Serial还能与别的设备进行串口通信。Serial是类HardwareSerial的一个对象,用这个对象可以操作串口0。对于有些单片机不止一个串口的,可以用Serial1操作串口1,Serial2操作串口2,Serial3操作串口3。

从源文件中可以看到几个类的继承关系,HardwareSerial继承类Stream,Stream继承类Print。

按照继承顺序,先讲Print类。
Print类是个非常有用的类。
由名字能看出来,这个类的作用是打印数据。通过不同的东西打印的过程都是一样的,只是最底层实现不一样。

最底层的实现就是打印一个字符

如果用不同硬件,那么打印一个字符的方式将会不一样。如果用串口的话,那么这一个字符的数据将会按位发送出去,如果要在LCD液晶屏上打印一个字符的话,那又会不一样。除此之外,其他部分都一样了。比如要打印一个字符串的话,可以逐个打印每一个字符,如果要打印数字123的话,那么就需要打印三个字符。这些内容不管是在串口上还是在LCD上还是在其他硬件上都是一样的。

因此,可以写一个类,给出共同部分的实现,而最底层实现写成虚函数。同时还包含了一些反应运行时状态(是否传送错误)的变量与方法。这个类就是Print类。

Print类

write

Print类给出了两个虚函数,分别用来发送一个字符和一个字符串

virtual size_t write(uint8_t) = 0;
virtual size_t write(const uint8_t *buffer, size_t size);

write(uint8_t c)这个函数是要在子类中实现的,当调用这个函数时,打印c对应的那个字符。比如

unsigned char ch = 'B';
write('A');
write(ch);
</
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值