2026-04-30 08:23:12 +00:00
|
|
|
|
/**
|
|
|
|
|
|
******************************************************************************
|
|
|
|
|
|
* @file main.c
|
|
|
|
|
|
* @author TMC Scan Team
|
|
|
|
|
|
* @version V1.0.0
|
|
|
|
|
|
* @date 09/12/2019
|
|
|
|
|
|
* @brief
|
|
|
|
|
|
******************************************************************************
|
|
|
|
|
|
*
|
|
|
|
|
|
* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
|
|
|
|
|
|
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
|
|
|
|
|
|
* TIME. AS A RESULT, TMC SHALL NOT BE HELD LIABLE FOR ANY
|
|
|
|
|
|
* DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
|
|
|
|
|
|
* FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
|
|
|
|
|
|
* CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
|
|
|
|
|
|
*
|
|
|
|
|
|
* <h2><center>© COPYRIGHT 2016 TMC</center></h2>
|
|
|
|
|
|
******************************************************************************
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
|
|
|
|
#include "global.h"
|
|
|
|
|
|
#include "Key.h"
|
|
|
|
|
|
#include "LCD.h"
|
|
|
|
|
|
|
|
|
|
|
|
void SysTickInit(void);
|
|
|
|
|
|
void HardwareInit(void);
|
|
|
|
|
|
void PowerOnShow(void);
|
|
|
|
|
|
void AppScanCodeInit(void);
|
|
|
|
|
|
void Delay_us(uint32_t us);
|
|
|
|
|
|
|
|
|
|
|
|
extern void BctcTestAppScanCodeInit(void);
|
|
|
|
|
|
extern void JJJ_Prompt(char *buf);
|
|
|
|
|
|
extern void Voice_Play(void);
|
|
|
|
|
|
extern uint8_t UpdateALCfg(void);
|
|
|
|
|
|
extern void KeyVoiceInit(void);
|
|
|
|
|
|
extern uint32_t gFunTrace;
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t gCfgUpdateFlag = 0;
|
|
|
|
|
|
uint8_t gLicenseFlag = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>License<73><65>gLicenseFlag = 0<><30><EFBFBD><EFBFBD>license<73><65>Ч
|
|
|
|
|
|
|
|
|
|
|
|
uint32_t HeartBeatTick = 0;
|
|
|
|
|
|
uint32_t HeartBeatTime = 3;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
** @function NVIC_SetVectorTable
|
|
|
|
|
|
** @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ
|
|
|
|
|
|
** @param NVIC_VectTab <EFBFBD>ж<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>ַ
|
|
|
|
|
|
** @param Offset ƫ<EFBFBD>Ƶ<EFBFBD>ַ
|
|
|
|
|
|
** @return
|
|
|
|
|
|
**/
|
|
|
|
|
|
void NVIC_SetVectorTable(u32 NVIC_VectTab, u32 Offset)
|
|
|
|
|
|
{
|
|
|
|
|
|
SCB->VTOR = NVIC_VectTab | (Offset & (u32)0x1FFFFF80);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
** @function CheckHeartBeat
|
|
|
|
|
|
** @brief check heart beat
|
|
|
|
|
|
** @return
|
|
|
|
|
|
**/
|
|
|
|
|
|
void CheckHeartBeat(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(gConfgBuf.heartbeatInterval>0)
|
|
|
|
|
|
{
|
|
|
|
|
|
if((TMC_GetTick()-HeartBeatTick)>HeartBeatTime)
|
|
|
|
|
|
{
|
|
|
|
|
|
HeartBeatTick = TMC_GetTick();
|
|
|
|
|
|
SetPackType(PACK_TYPEA);
|
|
|
|
|
|
SetOutputData((uint8_t *)"HEARTBEAT",9);
|
|
|
|
|
|
ReportData(Communication_Id);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
** @function main
|
|
|
|
|
|
** @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
** @param
|
|
|
|
|
|
** @return
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
|
|
|
|
int main(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
BarData comData, codeBar;
|
|
|
|
|
|
uint8_t nCmdCount = 0;
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡӦ<C8A1><D3A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
SystemCfgInit();
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>ʹ<EFBFBD>õ<EFBFBD>Ӳ<EFBFBD><D3B2>ģ<EFBFBD><C4A3>
|
|
|
|
|
|
HardwareInit();
|
|
|
|
|
|
//<2F>ָ<EFBFBD>BL<42><4C>ʱ<EFBFBD><CAB1>
|
|
|
|
|
|
gReturnBLCnt = TMC_GetTick();
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD>ƹ<EFBFBD><C6B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>
|
|
|
|
|
|
PowerOnShow();
|
|
|
|
|
|
|
|
|
|
|
|
Key_Init();
|
|
|
|
|
|
|
|
|
|
|
|
KeyVoiceInit();
|
|
|
|
|
|
|
|
|
|
|
|
LCD_Init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
uint8_t d[11] = {1,1,1,1,1,1,1,1,1,1,1};
|
|
|
|
|
|
LCD_Display(d,11);
|
|
|
|
|
|
TMC_Delay(500);
|
|
|
|
|
|
LCD_Erase();
|
|
|
|
|
|
AppRefreshWDT();
|
|
|
|
|
|
|
|
|
|
|
|
TimerHSIClockCount(TIM4, START_TIMER);//<2F><><EFBFBD><EFBFBD>ɨ<EFBFBD>붨ʱ<EBB6A8><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ɨ<EFBFBD><C9A8>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gCmdStartFlag = TRUE;
|
|
|
|
|
|
|
|
|
|
|
|
AppTIMxInterrupt(TIM6,2);//keyboard use
|
|
|
|
|
|
|
2026-05-07 15:06:17 +00:00
|
|
|
|
// if(gConfgBuf.heartbeatInterval==0xff||gConfgBuf.heartbeatInterval==0)gConfgBuf.heartbeatInterval=3;
|
|
|
|
|
|
// HeartBeatTime = gConfgBuf.heartbeatInterval*1000;
|
|
|
|
|
|
// HeartBeatTick = TMC_GetTick();
|
|
|
|
|
|
// startShowDevicemod();
|
2026-04-30 08:23:12 +00:00
|
|
|
|
|
|
|
|
|
|
while(1)
|
|
|
|
|
|
{
|
|
|
|
|
|
Voice_Play();
|
|
|
|
|
|
|
|
|
|
|
|
if(gCfgUpdateFlag==UPDATECFG)
|
|
|
|
|
|
{
|
|
|
|
|
|
//<2F>ڼ<EFBFBD><DABC>̴<EFBFBD><CCB4><EFBFBD><EFBFBD><EFBFBD>дFLASH<53><48>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>дFLASH
|
|
|
|
|
|
UpdateCfg();
|
|
|
|
|
|
gCfgUpdateFlag = 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if(gCfgUpdateFlag==UPDATEALCFG)
|
|
|
|
|
|
{
|
|
|
|
|
|
//<2F>ڼ<EFBFBD><DABC>̴<EFBFBD><CCB4><EFBFBD><EFBFBD><EFBFBD>дFLASH<53><48>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>дFLASH
|
|
|
|
|
|
UpdateALCfg();
|
|
|
|
|
|
gCfgUpdateFlag = 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-05-07 15:06:17 +00:00
|
|
|
|
|
2026-04-30 08:23:12 +00:00
|
|
|
|
//ͨ<>Ž<EFBFBD><C5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EEA3AC><D6B8><EFBFBD>ַ<EFBFBD>
|
|
|
|
|
|
nCmdCount = 0;
|
2026-05-07 15:06:17 +00:00
|
|
|
|
// while(RecieveData(&comData))
|
|
|
|
|
|
// {
|
|
|
|
|
|
// CommunicationCmdHandle(&comData);
|
|
|
|
|
|
// Delay_us(1000);
|
|
|
|
|
|
// nCmdCount++;
|
|
|
|
|
|
// if(nCmdCount>100)break;
|
|
|
|
|
|
// }
|
2026-04-30 08:23:12 +00:00
|
|
|
|
|
|
|
|
|
|
//ɨ<><C9A8><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD>ַ<EFBFBD>
|
|
|
|
|
|
if(ScanModeReceiveData(&codeBar) == TRUE)
|
|
|
|
|
|
{
|
|
|
|
|
|
if(SettingCodeBatch(&codeBar) == FALSE)
|
|
|
|
|
|
{
|
|
|
|
|
|
ScanCodeCmdHandle(&codeBar);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-05-07 15:06:17 +00:00
|
|
|
|
// CheckHeartBeat();
|
2026-04-30 08:23:12 +00:00
|
|
|
|
|
|
|
|
|
|
gFunTrace = 38;
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef DEBUG
|
|
|
|
|
|
//<2F><><EFBFBD>Ź<EFBFBD>ι<EFBFBD><CEB9>
|
|
|
|
|
|
AppRefreshWDT();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
** @function PowerOnShow
|
|
|
|
|
|
** @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƹ⣬<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
** @param
|
|
|
|
|
|
** @return
|
|
|
|
|
|
**/
|
|
|
|
|
|
void PowerOnShow(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƹ<EFBFBD>
|
|
|
|
|
|
switch(gConfgBuf.scanCodeMode)
|
|
|
|
|
|
{
|
|
|
|
|
|
case AUTOMODE:
|
|
|
|
|
|
AppLEDControl(gConfgBuf.ledStatus);
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case CMDMODE:
|
|
|
|
|
|
AppLEDControl(!gConfgBuf.ledStatus);
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case CMDTIMEMODE:
|
|
|
|
|
|
AppLEDControl(!gConfgBuf.ledStatus);
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case SENSORMODE:
|
|
|
|
|
|
AppLEDControl(!gConfgBuf.ledStatus);
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
|
AppLEDControl(gConfgBuf.ledStatus);
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
|
|
|
|
|
if(gConfgBuf.buzzerStatus)
|
|
|
|
|
|
{
|
|
|
|
|
|
if((*(uint32_t *)RESETFLAGADDR) != RESET_FLAG) //<2F>ϵ縴λʱ<CEBB><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE>
|
|
|
|
|
|
{
|
|
|
|
|
|
*(uint32_t *)RESETFLAGADDR = RESET_FLAG;
|
|
|
|
|
|
BuzzerSelect(POWERON_BUZZER);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
BuzzerSelect(SET_CODE_SUCEESS);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
SpeakerOn();
|
|
|
|
|
|
AppVoicePlay((uint8_t *)welcomeFile, sizeof(welcomeFile), gConfgBuf.voiceVolume);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
** @function HardwareInit
|
|
|
|
|
|
** @brief Ӳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨѶ<EFBFBD>ӿڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>led<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>ɨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD>
|
|
|
|
|
|
** @param <EFBFBD><EFBFBD>
|
|
|
|
|
|
** @return
|
|
|
|
|
|
**/
|
|
|
|
|
|
void HardwareInit(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> copy to ram1
|
|
|
|
|
|
Memcpy((void *)RAM_BASE_ADDR, (void *)IR_VECTOR_TABLE_ADDR, IR_VECTOR_TABLE_SIZE);
|
|
|
|
|
|
NVIC_SetVectorTable(RAM_BASE_ADDR, 0);
|
|
|
|
|
|
|
|
|
|
|
|
//Systick<63><6B>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
SysTickInit();
|
|
|
|
|
|
|
|
|
|
|
|
//ɨ<><C9A8><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
AppScanCodeInit();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ڳ<EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
AppUartInit(gConfgBuf.uartBaudRate, UART_PARITY_MODE_NONE);
|
|
|
|
|
|
//USB<53><42>ʼ<EFBFBD><CABC>
|
2026-05-07 15:06:17 +00:00
|
|
|
|
gConfgBuf.comunitationType = USBDEVTYPE_HIDKBD;
|
2026-04-30 08:23:12 +00:00
|
|
|
|
AppUSBInit(gConfgBuf.comunitationType);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
AppBuzzerInit();
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
AppVoiceInit();
|
|
|
|
|
|
//LED<45><44>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
AppLEDInit();
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ͷ<EFBFBD><CDB7>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
AppCameraInit();
|
|
|
|
|
|
#ifndef DEBUG
|
|
|
|
|
|
//<2F><><EFBFBD>Ź<EFBFBD><C5B9><EFBFBD>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
AppWDTInit();
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
//ģʽ<C4A3><CABD>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
AppScanModeInit();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
** @function AppScanCodeInit
|
|
|
|
|
|
** @brief ɨ<EFBFBD><EFBFBD><EFBFBD>㷨<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
** @param <EFBFBD><EFBFBD>
|
|
|
|
|
|
** @return
|
|
|
|
|
|
**/
|
|
|
|
|
|
void AppScanCodeInit(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
uint8_t *pliscence = (uint8_t *) LINSCENCE;
|
|
|
|
|
|
|
|
|
|
|
|
gLicenseFlag = TMC_Scan_Init(pliscence);
|
|
|
|
|
|
|
|
|
|
|
|
#if BCTCTEST
|
|
|
|
|
|
BctcTestAppScanCodeInit();
|
|
|
|
|
|
#else
|
|
|
|
|
|
/*EAN_13<31><33><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(EAN_13, gConfgBuf.EAN13);
|
|
|
|
|
|
TMC_Scan_Set(EAN_13_2, gConfgBuf.EAN13_2);
|
|
|
|
|
|
TMC_Scan_Set(EAN_13_5, gConfgBuf.EAN13_5);
|
|
|
|
|
|
/*EAN_8<5F><38><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(EAN_8, gConfgBuf.EAN8);
|
|
|
|
|
|
TMC_Scan_Set(EAN_8_2, gConfgBuf.EAN8_2);
|
|
|
|
|
|
TMC_Scan_Set(EAN_8_5, gConfgBuf.EAN8_5);
|
|
|
|
|
|
/*UPC_A<5F><41><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(UPC_A, gConfgBuf.UPCA);
|
|
|
|
|
|
TMC_Scan_Set(UPC_A_2, gConfgBuf.UPCA_2);
|
|
|
|
|
|
TMC_Scan_Set(UPC_A_5, gConfgBuf.UPCA_5);
|
|
|
|
|
|
/*UPC_E0<45><30><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(UPC_E0, gConfgBuf.UPCE0);
|
|
|
|
|
|
/*UPC_E1<45><31><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(UPC_E1, gConfgBuf.UPCE1);
|
|
|
|
|
|
TMC_Scan_Set(UPC_E1_2, gConfgBuf.UPCE1_2);
|
|
|
|
|
|
TMC_Scan_Set(UPC_E1_5, gConfgBuf.UPCE1_5);
|
|
|
|
|
|
/*Code_128<32><38><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(Code_128_Min, gConfgBuf.Code128MinLen);
|
|
|
|
|
|
TMC_Scan_Set(Code_128_Max, gConfgBuf.Code128MaxLen);
|
|
|
|
|
|
/*Code_39<33><39><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(Code_39, gConfgBuf.Code39);
|
|
|
|
|
|
TMC_Scan_Set(Code_39_32, gConfgBuf.Code39_32);
|
|
|
|
|
|
TMC_Scan_Set(Code_39_Full_Ascii, gConfgBuf.Code39_32_Full_ASCII);
|
|
|
|
|
|
TMC_Scan_Set(Code_39_Min, gConfgBuf.Code39MinLen);
|
|
|
|
|
|
TMC_Scan_Set(Code_39_Max, gConfgBuf.Code39MaxLen);
|
|
|
|
|
|
/*Code_93<39><33><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(Code_93, gConfgBuf.Code93);
|
|
|
|
|
|
TMC_Scan_Set(Code_93_Min, gConfgBuf.Code93MinLen);
|
|
|
|
|
|
TMC_Scan_Set(Code_93_Max, gConfgBuf.Code93MaxLen);
|
|
|
|
|
|
/*code bar<61><72><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(Codebar, gConfgBuf.CodeBar);
|
|
|
|
|
|
TMC_Scan_Set(Codabar_Min, gConfgBuf.CodeBarMinLen);
|
|
|
|
|
|
TMC_Scan_Set(Codabar_Max, gConfgBuf.CodeBarMaxLen);
|
|
|
|
|
|
/*ITF<54><46><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(ITF, gConfgBuf.Interleaved25);
|
|
|
|
|
|
TMC_Scan_Set(ITF_Min, gConfgBuf.Interleaved25MinLen);
|
|
|
|
|
|
TMC_Scan_Set(ITF_Max, gConfgBuf.Interleaved25MaxLen);
|
|
|
|
|
|
/*PDF417<31><37><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(PDF_417, gConfgBuf.PDF417);
|
|
|
|
|
|
/*DM<44><4D><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(DM_NOT_MIRROR, gConfgBuf.DM);
|
|
|
|
|
|
TMC_Scan_Set(DM_MIRROR, gConfgBuf.DM);
|
|
|
|
|
|
|
|
|
|
|
|
#if SETTINGCODE_MODE_0
|
|
|
|
|
|
TMC_Scan_Set(Code_128, gConfgBuf.Code128);
|
|
|
|
|
|
#elif SETTINGCODE_MODE_1
|
|
|
|
|
|
/*QR<51><52><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(QR_NOT_MIRROR, gConfgBuf.QR);
|
|
|
|
|
|
TMC_Scan_Set(QR_MIRROR, gConfgBuf.QR );
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/*Industrial25<32><35><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(Industrial25, gConfgBuf.Industrial_25);
|
|
|
|
|
|
TMC_Scan_Set(Industrial_Min, gConfgBuf.Industrial_25MinLen);
|
|
|
|
|
|
TMC_Scan_Set(Industrial_Max, gConfgBuf.Industrial_25MaxLen);
|
|
|
|
|
|
|
|
|
|
|
|
/*Matrix25<32><35><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(Matrix25, gConfgBuf.Matrix25);
|
|
|
|
|
|
TMC_Scan_Set(Matrix25_Min, gConfgBuf.Matrix25MinLen);
|
|
|
|
|
|
TMC_Scan_Set(Matrix25_Max, gConfgBuf.Matrix25MaxLen);
|
|
|
|
|
|
|
|
|
|
|
|
/*IATA25<32><35><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(IATA25, gConfgBuf.IATA25);
|
|
|
|
|
|
TMC_Scan_Set(IATA25_Min, gConfgBuf.IATA25MinLen);
|
|
|
|
|
|
TMC_Scan_Set(IATA25_Max, gConfgBuf.IATA25MaxLen);
|
|
|
|
|
|
|
|
|
|
|
|
/*ECIģʽ<C4A3><CABD><EFBFBD><EFBFBD>*/
|
|
|
|
|
|
TMC_Scan_Set(ECI_Mode, gConfgBuf.ECIMode);
|
|
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//Systick<63><6B>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
void SysTickInit(void)
|
|
|
|
|
|
{
|
|
|
|
|
|
//Systick<63><6B>ʼ<EFBFBD><CABC>
|
|
|
|
|
|
SysTick_Config(SystemCoreClock/1000);
|
|
|
|
|
|
/* SysTick_IRQn interrupt clear pending */
|
|
|
|
|
|
NVIC_ClearPendingIRQ(SysTick_IRQn);
|
|
|
|
|
|
|
|
|
|
|
|
/* SysTick_IRQn interrupt enable */
|
|
|
|
|
|
NVIC_EnableIRQ(SysTick_IRQn);
|
|
|
|
|
|
/* Initialization clock */
|
|
|
|
|
|
TMC_InitTick(TICK_INT_PRIORITY);
|
|
|
|
|
|
NVIC_SetPriority(SysTick_IRQn, TICK_INT_PRIORITY);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void assert_failed(uint8_t *file, uint32_t line)
|
|
|
|
|
|
{
|
|
|
|
|
|
//while(1);
|
|
|
|
|
|
ResetChip(11);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @function JJJ_Prompt
|
|
|
|
|
|
* @brief send to computer for display
|
|
|
|
|
|
*/
|
|
|
|
|
|
void JJJ_Prompt(char *buf)
|
|
|
|
|
|
{
|
|
|
|
|
|
uint16_t len = strlen(buf);
|
|
|
|
|
|
SetOutputData((uint8_t *)buf, len);
|
|
|
|
|
|
ReportData(Communication_Id);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @function Delay_us
|
|
|
|
|
|
* @brief delay micro seconds
|
|
|
|
|
|
*/
|
|
|
|
|
|
void Delay_us(uint32_t us)
|
|
|
|
|
|
{
|
|
|
|
|
|
int n=0;
|
|
|
|
|
|
us = us*10;
|
|
|
|
|
|
while(n++<us);
|
|
|
|
|
|
}
|