例如我需要打印一行字“AbCD”,我需要将这几个字符对应的点阵拿出来,然后从上到下逐行提取发送给打印头。发送方式为SPI发送,走纸和发送数据同步运行,并且加热一行纸时要多次拖动纸,这样打出来的效果更好。
打印头空闲的时候,把锁存脚置高,当你发送完数据之后,就把锁存脚拉低(拉低后缓存不接收数据),延时1us之后,拉高即可锁存数据,打开打印头的加热控制引脚进行加热。
由于打印头需要加热到一定温度后才能让热敏纸显示出字,因此如果一行有太多的点需要打印,那么可能会造成电池供电不足,导致打印不出字的问题。
一行加热的点太多,可以分段打印,如果分段打印,势必会造成加热时间增长,由于步进电机在每打印完一行需要步进一段距离,而中间的加热时间不同导致步进电机会出现震荡。打印的时候噪音较大,这个问题在我这解决不了(由于源程序不是自己写的,没有注释,没有文档,限于个人能力原因目前不敢大改,只知道是加热时间引起的电机振动问题严重)
在做步进电机驱动的时候,步进电机的在接下来都不工作时,要关闭驱动IC的电流,否则电机不转,此时电能转换为内能发热。
![](https://i-blog.csdnimg.cn/blog_migrate/c112b26950caf6bb36dbaf2e7b4a7b51.png)
缺纸检测:打印机有一个反射光电侦测的开关,当缺纸或压纸轴未压好,光电侦测发出的光无法被反射,输出高电平。
![](https://i-blog.csdnimg.cn/blog_migrate/db2a2dc782948ae42e2b1b3c70f9d80a.png)
机芯热敏头电路板的温度(热敏电阻的检测温度)不能超过65℃,以保护热敏头的内部IC,马达表面温度不能超过90℃,能够更好的保护马达线圈。
打印头引脚
![](https://i-blog.csdnimg.cn/blog_migrate/433edc2b9b6af8de8ab6c11c335bf3ad.png)