日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

热敏打印机应用笔记

發(fā)布時間:2024/7/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 热敏打印机应用笔记 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

熱敏電打印機在PS機上應用比較廣泛。造型需要考濾的參數(shù)有:

1、打印方式:熱敏,針式等等;

2、打印紙度:影響一行能打的字數(shù);

3、打印密度:影響線的粗細,單位 點/mm 或是 點/行

4、打印頭的壽命:

5、有效打印寬度:實際可打印的字符寬度;

6、走紙速度:即打速度;

7、支持的字符集: 中文 / 英文

8、接口形式:并/串 TLL/232

9、功耗:

10、外形及安裝方式:

11、資質(zhì)認證:如防爆場合

?

*煒-煌 *E9* (多來點星星以免打廣告) 打印機適用防爆場合,硬件連接很簡單,主要是代碼調(diào)試,格式對齊上比較費紙,呵呵:

1、調(diào)試時最就是單片機與打印機獨立供電,在電打印過程序中打印機電流很厲害(熱敏打印的缺點),1.5A左右,搞不好會把單片機搞死掉或是會導致打印終止。最好用線性電源供電可以觀察電流;

2、程序中發(fā)送打印數(shù)據(jù)前先選擇字庫碼的類型;

3、打印應該注意打印機最長能打印多少個字符,以免加上行間距;

?

#include "stm32f10x.h"
#include "misc.h"
#include "system_stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_usart.h"
#include "fifo.h"
#include "string.h"

#define? MAX_LINE???????????? 13???

#define? EnableData()???????? USART_ITConfig(TicketPrintUart, USART_IT_TXE, ENABLE)???
#define? IsPrinterBusy()????? GPIO_ReadInputDataBit(TicketPrintBusyGPIO, TicketPrintBusyPin)??????????
void? TicketPrinterInit(void);
u8?????? TicketPrinterWrite(u8 **dp);
void? TicketPrinterTest(void);

#define? TicketPrintIRQ?????? USART2_IRQHandler?????

#define? TicketPrintUartIOClk RCC_APB2Periph_GPIOA?

#define? TicketPrintUartClk?? RCC_APB1Periph_USART2

#define? TicketPrintTxGPIO??? GPIOA?????????????????

#define? TicketPrintBusyGPIO? GPIOA
#define? TicketPrintTxPin???? GPIO_Pin_2
#define? TicketPrintBusyPin?? GPIO_Pin_3
#define? TicketPrintUart????? USART2?????????????????
#define? TicketPrintIRQn????? USART2_IRQn

?????????????????????????????????
static void TicketPrinterIOInit(void)
{
??? USART_InitTypeDef USART_InitStructure;
??? NVIC_InitTypeDef NVIC_InitStructure;
??? GPIO_InitTypeDef GPIO_InitStructure;

??? RCC_APB2PeriphClockCmd(TicketPrintUartIOClk | RCC_APB2Periph_AFIO, ENABLE);
??? RCC_APB1PeriphClockCmd(TicketPrintUartClk, ENABLE);

??? NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
??? NVIC_InitStructure.NVIC_IRQChannel = TicketPrintIRQn;
??? NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
??? NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
??? NVIC_Init(&NVIC_InitStructure);

??? GPIO_InitStructure.GPIO_Pin = TicketPrintBusyPin; //Printor Busy
??? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
??? GPIO_Init(TicketPrintBusyGPIO, &GPIO_InitStructure);
??? GPIO_InitStructure.GPIO_Pin = TicketPrintTxPin;?? //TX2???
??? GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
??? GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
??? GPIO_Init(TicketPrintTxGPIO, &GPIO_InitStructure);

??? USART_InitStructure.USART_BaudRate = 9600;
??? USART_InitStructure.USART_WordLength = USART_WordLength_8b;
??? USART_InitStructure.USART_StopBits = USART_StopBits_1;
??? USART_InitStructure.USART_Parity = USART_Parity_No;
??? USART_InitStructure.USART_HardwareFlowControl =
??????????? USART_HardwareFlowControl_None;
??? USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;

??? USART_Init(TicketPrintUart, &USART_InitStructure);
??? FifoInit(&PrintFifo, sizeof(PrintFifo.data));
??? USART_Cmd(TicketPrintUart, ENABLE);
}

void TicketPrintIRQ(void)
{
??? u8 ch;
??? if (USART_GetITStatus(TicketPrintUart, USART_IT_TXE) != RESET)
??? {
??????? if(!IsPrinterBusy())
??????? {
???????? if(!FifoRead(&PrintFifo, &ch))
???????????? TicketPrintUart->DR = (uint16_t)0x01FF & ch;
???????? else
???????????? USART_ITConfig(TicketPrintUart, USART_IT_TXE, DISABLE);
???? }
??? }???????
}

?

?

//測試代碼

?

test[] = {“stm32 單片機”};

for(y = 0; y < sizeof(test); y++)

FifoWrite(&PrintFifo,? test[y]);

FifoWrite(&PrintFifo, '\n');
EnableData();

轉(zhuǎn)載于:https://www.cnblogs.com/worldsing/archive/2013/05/22/3093083.html

總結(jié)

以上是生活随笔為你收集整理的热敏打印机应用笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。