1
0
forked from me/IronOS

Convert original source to system workbench

Create readme
Started commenting the files in english
NO Optimisations yet, just trying to get it all working over as is first
Using newer STM StdPeriph libs (i think they are newer?)
This commit is contained in:
Ben V. Brown
2016-09-11 21:42:42 +10:00
parent ed72503be9
commit 871e8e35c9
120 changed files with 50778 additions and 0 deletions

View File

@@ -0,0 +1,37 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. ********************
File Name : APP_Version.h
Version : S100 APP Ver 2.11
Description:
Author : bure & Celery
Data: 2015/08/03
History:
2015/08/03 ͳһ<CDB3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
#ifndef __VERSION_H
#define __VERSION_H
#define M_VER 'V','0'
#define S_VER '0','1'
#define OEM_TYPE "0"
#define APP_BASE 0x0800C000
/*----------------------------------------------------------------------------*/
#ifdef TYPE_DS201
#define PRODUCT_INFO "DS201"
#define SCH_VER "1.7B"
#elif TYPE_DS202
#include "DS202V1_6.h"
#define FLASH_PAGE 0x0800
#elif TYPE_DS203
#define PRODUCT_INFO "DS203"
#define SCH_VER "2.70"
#elif TYPE_S100
#define PRODUCT_INFO "TS100"
#include "S100V0_1.h"
#endif
/*----------------------------------------------------------------------------*/
#define DFU_VER {M_VER,'.',S_VER,LCD_M, 0}
#endif /* VERSION_H */
/********************************* END OF FILE ******************************/

View File

@@ -0,0 +1,59 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. ********************
File Name : Bios.h
Version : S100 APP Ver 2.11
Description:
Author : bure & Celery
Data: 2015/08/03
History:
2015/08/03 ͳһ<CDB3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
#ifndef __BIOS_H
#define __BIOS_H
#include "stm32f10x.h"
#include "S100V0_1.h"
extern volatile u32 gTime[];
#define USB_DN_OUT() GPIOA->CRH = (GPIOA->CRH & 0xFFFF3FFF) | 0x00003000
#define USB_DP_OUT() GPIOA->CRH = (GPIOA->CRH & 0xFFF3FFFF) | 0x00030000
#define USB_DN_EN() GPIOA->CRH = (GPIOA->CRH & 0xFFFFBFFF) | 0x0000B000
#define USB_DP_EN() GPIOA->CRH = (GPIOA->CRH & 0xFFFBFFFF) | 0x000B0000
#define USB_DP_PD() GPIOA->CRH = (GPIOA->CRH & 0xFFF3FFFF) | 0x00030000
#define USB_DN_HIGH() GPIOA->BSRR = GPIO_Pin_11
#define USB_DP_HIGH() GPIOA->BSRR = GPIO_Pin_12
#define USB_DN_LOW() GPIOA->BRR = GPIO_Pin_11
#define USB_DP_LOW() GPIOA->BRR = GPIO_Pin_12
#define LOW 0
#define HIGH 1
#define BLINK 1 // Bit0 : 0/1 <20><>ʾ/<2F><>˸״̬<D7B4><CCAC>־
#define WAIT_TIMES 100000
#define SECTOR_SIZE 512
#define SECTOR_CNT 4096
#define HEAT_T 200
u32 Get_HeatingTime(void);
void Set_HeatingTime(u32 heating_time);
u16 Get_AdcValue(u8 i);
void Init_Gtime(void);
void Delay_Ms(u32 ms);
void Delay_HalfMs(u32 ms);
void USB_Port(u8 state);
void NVIC_Config(u16 tab_offset);
void RCC_Config(void);
void GPIO_Config(void);
void Ad_Init(void);
void Init_Timer2(void);
void Init_Timer3(void);
void TIM2_ISR(void);
void TIM3_ISR(void);
#endif
/********************************* END OF FILE ********************************/

View File

@@ -0,0 +1,68 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. **********************
File Name : CTRL.h
Version : S100 APP Ver 2.11
Description:
Author : Celery
Data: 2015/07/07
History:
2015/07/07 ͳһ<CDB3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
#ifndef _CTRL_H
#define _CTRL_H
#include "stm32f10x.h"
#include "Bios.h"
#define TEMPSHOW_TIMER gTime[0]/*TEMPSHOW_TIMER*/
#define HEATING_TIMER gTime[1]/*HEATING_TIMER*/
#define ENTER_WAIT_TIMER gTime[2]/*ENTER_WAIT_TIMER*/
#define EFFECTIVE_KEY_TIMER gTime[3]/*EFFECTIVE_KEY_TIMER*/
#define LEAVE_WAIT_TIMER gTime[4]/*LEAVE_WAIT_TIMER*/
#define G6_TIMER gTime[5]/*SWITCH_SHOW_TIMER*/
#define UI_TIMER gTime[6]/*UI_TIMER ͼ<><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>*/
#define KD_TIMER gTime[7]/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ*/
//------------------------------ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>------------------------------------//
#define KEY_ST(KEY_PIN) GPIO_ReadInputDataBit(GPIOA, KEY_PIN)
#define NO_KEY 0x0 /*NO Keys pressed*/
#define KEY_V1 0x0100/*V1 key pressed*/
#define KEY_V2 0x0040/*V2 Key pressed*/
#define KEY_CN 0X8000/*(Long key press i think)*/
#define KEY_V3 (KEY_V1|KEY_V2)/*Both Keys pressed*/
typedef enum WORK_STATUS {
IDLE = 1, //System is idle
THERMOMETER, //Thermometer mode, basically reads sensor and shows temp
TEMP_CTR, //Soldering Mode (Temp Controlled)
WAIT, //System in wait state
TEMP_SET, //Setting the soldering temp
CONFIG, //system config mode
MODE_CNG, //DFU mode i think??
ALARM, //An alarm has been fired
} WORK_STATUS;
typedef enum WARNING_STATUS {
NORMAL_TEMP = 1, HIGH_TEMP, SEN_ERR, HIGH_VOLTAGE, LOW_VOLTAGE,
} WARNING_STATUS;
typedef struct {
u8 ver[16];
s16 t_standby; // 200<30><30>C=1800 2520,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
s16 t_work; // 350<35><30>C=3362, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
s16 t_step; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
u32 wait_time; //3*60*100 3 mintute
u32 idle_time; //6*60*100 6 minute
} DEVICE_INFO_SYS;
extern DEVICE_INFO_SYS device_info;
void Set_PrevTemp(s16 Temp);
u8 Get_CtrlStatus(void);
void Set_CtrlStatus(u8 status);
s16 Get_TempVal(void);
u16 Get_HtFlag(void);
void System_Init(void);
void Pid_Init(void);
u16 Pid_Realize(s16 temp);
u32 Heating_Time(s16 temp, s16 wk_temp);
void Status_Tran(void);
#endif
/******************************** END OF FILE *********************************/

View File

@@ -0,0 +1,97 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. **********************
File Name : Disk.h
Version : S100 APP Ver 2.11
Description:
Author : Celery
Data: 2015/08/03
History:
2015/08/03 :
*******************************************************************************/
#ifndef __DISK_H
#define __DISK_H
#include "stm32f10x_flash.h"
#include "usb_scsi.h"
#include "usb_regs.h"
#include "usb_conf.h"
#include "usb_bot.h"
#include "usb_mem.h"
#include "usb_lib.h"
#include "usb_pwr.h"
#define SECTOR_SIZE 512
#define SECTOR_CNT 4096
#define FAT1_SECTOR &gDisk_buff[0x000]
#define FAT2_SECTOR &gDisk_buff[0x200]
#define ROOT_SECTOR &gDisk_buff[0x400]
#define VOLUME_BASE &gDisk_buff[0x416]
#define OTHER_FILES &gDisk_buff[0x420]
#define FILE_SECTOR &gDisk_buff[0x600]
#define Root (u8*)ROOT_SECTOR
//#define APP_BASE 0x0800C000
#define HEX 0
#define BIN 2
#define SET 1
#define RDY 0
#define NOT 2
#define END 3
#define ERR 4
#define DATA_SEG 0x00
#define DATA_END 0x01
#define EXT_ADDR 0x04
#define TXFR_IDLE 0
#define TXFR_ONGOING 1
//#define FAT_DATA 0x00FFFFF8
#define VOLUME 0x40DD8D18 //0x3E645C29
#define BUFF 0 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD>
#define V32_BASE SECTOR_SIZE // V32 <20>ܹ<EFBFBD> 8*4=32 <20>ֽ<EFBFBD>
#define W_ADDR 0
#define ADDR 1
#define H_ADDR 2
#define OFFSET 3
#define SEC_CNT 4
#define COUNT 5
#define RD_CNT 6
#define WR_CNT 7
#define VAR_BASE V32_BASE + 32 // VAR <20>ܹ<EFBFBD> 9+17=26 <20>ֽ<EFBFBD>
#define USB_ST 0
#define SEG_KIND 1
#define SEG_LEN 2
#define SEG_SUM 3
#define SEG_TMP 4
#define SEG_ST 5
#define DATA_CNT 6
#define F_TYPE 7
#define F_FLAG 8
#define SEG_DATA 9 // ͨ<>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 9~26 <20><>17<31>ֽ<EFBFBD>
u8 Cal_Val(u8 str[],u8 k,u8 flag);
void Disk_BuffInit(void);
u8 ReWrite_All(void);
u8 Config_Analysis(void);
void Disk_BuffInit(void);
void Disk_SecWrite(u8* pbuffer, u32 disk_addr);
void Close_File(void);
void Write_Memory(u32 w_offset, u32 w_length);
void Read_Memory (u32 r_offset, u32 r_length);
void Set_Ver(u8 str[],u8 i);
void Erase(void);
char * Get_Line(char *dst,char *src, int n,int m);
void Upper(u8* str, u16 len);
u8* SearchFile(u8* pfilename, u16* pfilelen,u16* root_addr);
u8 ReWriteFlsash(void);
#endif
/********************************* END OF FILE ******************************/

View File

@@ -0,0 +1,53 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. ********************
File Name : EXT_Flash.h
Version : S100 APP Ver 2.11
Description:
Author : bure
Data:
History:
*******************************************************************************/
#ifndef __EXT_FLASH_H
#define __EXT_FLASH_H
//#include "stm32f10x_lib.h"
#include "stm32f10x.h"
extern u8 flash_mode;
#define FLASH_2M 1
#define FLASH_8M 2
//#define W25Q64BV
#define WREN 0x06 // Write enable instruction
#define READ 0x03 // Read from Memory instruction
#define RDSR 0x05 // Read Status Register instruction
#define PP 0x02 // Write to Memory instruction
#define PE 0xDB // Page Erase instruction
#define PW 0x0A // Page write instruction
#define DP 0xB9 // Deep power-down instruction
#define RDP 0xAB // Release from deep power-down instruction
//----W25Q64BV----------------------------------------------------------------//
#define CHIPE 0xC7 // Chip All Erase instruction
#define BE64 0xD8 // Block 32k Erase instruction
#define BE32 0x52 // Block 64k Erase instruction
#define SE 0x20 // Sector 4K Erase instruction
#define Dummy_Byte 0xA5
#define EXT_FLASH_PageSize 256
//----------------------------------------------------------------------------//
#define WIP_Flag 0x01 // Write In Progress (WIP) flag
#define ExtFlash_CS_LOW() GPIO_ResetBits(GPIOB, GPIO_Pin_7)
#define ExtFlash_CS_HIGH() GPIO_SetBits(GPIOB, GPIO_Pin_7)
void ExtFlash_PageWR(u8* pBuffer, u32 WriteAddr);
void ExtFlash_PageRD(u8* pBuffer, u32 ReadAddr, u16 Lenght);
void MAL_GetStatus (void);
u8 ExtFlash_ReadByte(void);
u8 ExtFlash_SendByte(u8 byte);
void ExtFlash_WriteEnable(void);
void ExtFlash_WaitForWriteEnd(void);
void ExtFlash_PageProg(u8* pBuffer, u32 WriteAddr,u8 CMD);
#endif
/********************************* END OF FILE ******************************/

View File

@@ -0,0 +1,29 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. ********************
File Name : FAT12.h
Version : S100 APP Ver 2.11
Description:
Author : bure
Data:
History:
*******************************************************************************/
#ifndef __FAT12_H
#define __FAT12_H
#include "stm32f10x.h"
u8 ReadFileSec(u8* Buffer, u16* Cluster);
u8 ReadDiskData(u8* pBuffer, u32 ReadAddr, u16 Lenght);
u8 NextCluster(u16* Cluster);
u8 ProgFileSec(u8* Buffer, u16* Cluster);
u8 ProgDiskPage(u8* Buffer, u32 ProgAddr);
u8 SeekBlank(u8* Buffer, u16* Cluster);
u8 SetCluster(u8* Buffer, u16* Cluster);
u8 OpenFileRd(u8* Buffer, u8* FileName, u16* Cluster, u32* pDirAddr);
u8 OpenFileWr(u8* Buffer, u8* FileName, u16* Cluster, u32* pDirAddr);
u8 CloseFile(u8* Buffer, u32 Lenght, u16* Cluster, u32* pDirAddr);
u8 FAT_SearchFile(u8* pBuffer, u8* pFileName, u16* pCluster, u32* pDirAddr,u32* flag);
void ExtFlash_PageWrite(u8* pBuffer, u32 WriteAddr, u8 Mode);
#endif
/********************************* END OF FILE ********************************/

View File

@@ -0,0 +1,29 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. ********************
File Name : Flash.h
Version : Author : bure
*******************************************************************************/
#ifndef __EXT_FLASH_H
#define __EXT_FLASH_H
#include "stm32f10x.h"
#define PAGESIZE 256
#define WREN 0x06 // Write enable instruction
#define READ 0x03 // Read from Memory instruction
#define RDSR 0x05 // Read Status Register instruction
#define PP 0x02 // Write to Memory instruction
#define PW 0x0A // Page write instruction
#define OK 0 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define SEC_ERR 1 // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
#define TMAX 100000 // <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
#define WIP_Flag 0x01 // Write In Progress (WIP) flag
#define Dummy_Byte 0xA5
u8 FLASH_Prog(u32 Address, u16 Data);
void FLASH_Erase(u32 Address);
void ExtFlashPageWR(u8* pBuffer, u32 WriteAddr);
void ExtFlashDataRD(u8* pBuffer, u32 ReadAddr, u16 Lenght);
#endif
/********************************* END OF FILE ******************************/

View File

@@ -0,0 +1,49 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. **********************
File Name : CTRL.h
Version : S100 APP Ver 2.11
Description:
Author : Celery
Data: 2015/07/07
History:
2015/07/07 ͳһ<CDB3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
#ifndef _HARDWARE_H
#define _HARDWARE_H
#include "stm32f10x.h"
#define SI_COE 8//56
#define SI_THRESHOLD 60
typedef enum VOL_CLASS {
H_ALARM = 0,
VOL_24,
VOL_19,
VOL_12,
VOL_5,
L_ALARM,
} VOL_CLASS;
extern s32 gZerop_ad;
extern u8 gCalib_flag;
extern u32 gTurn_offv;
u32 Get_gKey(void);
void Set_gKey(u32 key);
void Set_LongKeyFlag(u32 flag);
void Zero_Calibration(void);
int Read_Vb(u8 flag);
void Scan_Key(void);
u32 Get_SlAvg(u32 avg_data);
int Get_TempSlAvg(int avg_data);
u32 Get_AvgAd(void);
int Get_SensorTmp(void);
u16 Get_ThermometerTemp(void);
s16 Get_Temp(s16 wk_temp);
u32 Clear_Watchdog(void);
u32 Start_Watchdog(u32 ms);
u8 Get_AlarmType(void);
void Set_AlarmType(u8 type);
u32 Get_CalFlag(void);
#endif
/******************************** END OF FILE *********************************/

21
workspace/ts100/inc/I2C.h Normal file
View File

@@ -0,0 +1,21 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. **********************
File Name : I2C.h
Version : S100 APP Ver 2.11
Description:
Author : Celery
Data: 2015/08/03
History:
2015/08/03 :
*******************************************************************************/
#ifndef __I2C_H
#define __I2C_H
#define I2C_TX 1
#define I2C_RX 2
void I2C_Configuration(void);
void Delay_uS(u32 us);
void I2C_PageWrite(u8* pbuf, u8 numbyte,u8 deviceaddr );
void I2C_PageRead(u8* pbuf, u8 numbyte,u8 deviceaddr, u8 readaddr);
#endif
/******************************** END OF FILE *********************************/

View File

@@ -0,0 +1,94 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. *******************/
/* Brief : Interrupt Service Routines Author : bure */
/******************************************************************************/
#ifndef __INTERRUPT_H
#define __INTERRUPT_H
//See here for refernce to this block http://embedded.kleier.selfhost.me/vector.php
static void forever (void);
void __attribute__ ((weak, alias ("forever"))) WWDG_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) PVD_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TAMPER_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) RTC_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) FLASH_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) RCC_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) EXTI0_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) EXTI1_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) EXTI2_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) EXTI3_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) EXTI4_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) DMA1_Channel1_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) DMA1_Channel2_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) DMA1_Channel3_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) DMA1_Channel4_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) DMA1_Channel5_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) DMA1_Channel6_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) DMA1_Channel7_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) ADC1_2_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) USB_HP_CAN1_TX_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) CAN1_RX1_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) CAN1_SCE_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) EXTI9_5_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM1_BRK_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM1_UP_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM1_TRG_COM_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM1_CC_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM4_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) I2C1_EV_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) I2C1_ER_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) I2C2_EV_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) I2C2_ER_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) SPI1_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) SPI2_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) USART1_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) USART2_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) USART3_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) EXTI15_10_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) RTCAlarm_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) USBWakeUp_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM8_BRK_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM8_UP_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM8_TRG_COM_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM8_CC_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) ADC3_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) FSMC_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) SDIO_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM5_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) SPI3_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) UART4_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) UART5_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM6_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) TIM7_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) DMA2_Channel1_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) DMA2_Channel2_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) DMA2_Channel3_IRQHandler (void);
void __attribute__ ((weak, alias ("forever"))) DMA2_Channel4_5_IRQHandler (void);
void NMI_Handler(void);
void HardFault_Handler(void);
void MemManage_Handler(void);
void BusFault_Handler(void);
void UsageFault_Handler(void);
void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
void WWDG_IRQHandler(void);
void PVD_IRQHandler(void);
void TAMPER_STAMP_IRQHandler(void);
void RTC_WKUP_IRQHandler(void);
void FLASH_IRQHandler(void);
void USB_LP_CAN1_RX0_IRQHandler(void);
void I2C1_EV_IRQHandler(void);
void I2C1_ER_IRQHandler(void);
void TIM2_IRQHandler(void);
void TIM3_IRQHandler(void);
#endif /* __INTERRUPT_H */
/********************************* END OF FILE ******************************/

View File

@@ -0,0 +1,85 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. **********************
File Name : MMA8652FC.h
Version : S100 APP Ver 2.11
Description:
Author : Celery
Data: 2015/07/07
History:
2015/07/07 ͳһ<CDB3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
#ifndef __MMA8652FC__H
#define __MMA8652FC__H
//--------------MMA8652 <20><><EFBFBD>岿<EFBFBD><E5B2BF>----------------------------------------------//
#define DEVICE_ADDR 0X1D
//--------------MMA8652 <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-------------------------------------------//
#define STATUS_REG 0x00
#define X_MSB_REG 0X01
#define X_LSB_REG 0X02
#define Y_MSB_REG 0X03
#define Y_LSB_REG 0X04
#define Z_MSB_REG 0X05
#define Z_LSB_REG 0X06
#define TRIG_CFG 0X0A
#define SYSMOD 0X0B
#define INT_SOURCE 0X0C
#define DEVICE_ID 0X0D
#define XYZ_DATA_CFG_REG 0X0E
#define CTRL_REG1 0X2A //
#define CTRL_REG2 0X2B //System Control 2 register
#define CTRL_REG3 0X2C //
#define CTRL_REG4 0X2D //Interrupt Enable register
#define CTRL_REG5 0X2E //
//-----STATUS_REG(0X00)-----Bit Define----------------------------------------//
#define ZYXDR_BIT 0X08
//----XYZ_DATA_CFG_REG(0xE)-Bit Define----------------------------------------//
#define FS_MASK 0x03
#define FULL_SCALE_2G 0x00 //2g=0x0,4g=0x1,8g=0x2
#define FULL_SCALE_4G 0x01
#define FULL_SCALE_8G 0x02
//---------CTRL_REG1(0X2A)Bit Define------------------------------------------//
#define ACTIVE_MASK 1<<0 //bit0
#define DR_MASK 0x38 //bit D5,D4,D3
#define FHZ800 0x0 //800hz
#define FHZ400 0x1 //400hz
#define FHZ200 0x2 //200hz
#define FHZ100 0x3 //100hz
#define FHZ50 0x4 //50hz
#define FHZ2 0x5 //12.5hz
#define FHZ1 0x6 //6.25hz
#define FHZ0 0x7 //1.563hz
#define DataRateValue FHZ100
//---------CTRL_REG2(0X2B)Bit Define------------------------------------------//
#define MODS_MASK 0x03 //Oversampling Mode 4
#define Normal_Mode 0x0 //Normal=0,Low Noise Low Power MODS=1,
//HI RESOLUTION=2,LOW POWER MODS = 11
//----CTRL_REG4---Interrupt Enable BIT ---------------------------------------//
//0 interrupt is disabled (default)
//1 interrupt is enabled
#define INT_EN_ASLP 1<<7 //Auto-SLEEP/WAKE Interrupt Enable
#define INT_EN_FIFO 1<<6 //FIFO Interrupt Enable
#define INT_EN_TRANS 1<<5 //Transient Interrupt Enable
#define INT_EN_LNDPRT 1<<4 //Orientation(Landscape/Portrait)Interrupt Enable
#define INT_EN_PULSE 1<<3 //Pulse Detection Interrupt Enable
#define INT_EN_FF_MT 1<<2 //Freefall/Motion Interrupt Enable
#define INT_EN_DRDY 1<<0 //Data Ready Interrupt Enable
u16 Get_MmaShift(void);
void Set_MmaShift(u16 shift);
u16 Get_MmaActive(void);
void MMA865x_Standby(void);
void MMA865x_Active(void);
u16 Cheak_XYData(u16 x0,u16 y0,u16 x1,u16 y1);
u16 Update_X(void);
u16 Update_Y(void);
u16 Update_Z(void);
void Check_Accelerated(void);
void StartUp_Accelerated(void);
#endif
/******************************** END OF FILE *********************************/

View File

@@ -0,0 +1,33 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. **********************
File Name : Oled.h
Version : S100 APP Ver 2.11
Description:
Author : Celery
Data: 2015/07/07
History:
2015/07/07 ͳһ<CDB3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
#ifndef _OLED_SSD1306_H
#define _OLED_SSD1306_H
#define DEVICEADDR_OLED 0x3c
#include "stm32f10x.h"
void Sc_Pt(u8 Co);
void Oled_DisplayOn(void);
void Oled_DisplayOff(void);
u8* Oled_DrawArea(u8 x0,u8 y0,u8 wide, u8 high,u8* ptr);
void Set_ShowPos(u8 x,u8 y);
u8* Show_posi(u8 posi,u8* ptr,u8 word_width);
void Clean_Char(int k,u8 wide);
void Write_Command(u8 Data);
void Write_Data(u8 Data);
void GPIO_Init_OLED(void);
void Init_Oled(void);
u8* Data_Command(u8 len,u8* ptr);
void Reg_Command(u8 posi,u8 flag);
void Clear_Screen(void);
void Write_InitCommand_data(u32 Com_len,u8* data);
void Display_BG(void);
#endif
/******************************** END OF FILE *********************************/

View File

@@ -0,0 +1,81 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. ********************
Brief : <20>ײ<EFBFBD>Ӳ<EFBFBD><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Author : bure
*******************************************************************************/
#include "stm32f10x.h"
#define PRODUCT_INFO "TS100"
#define MCU_TYPE "STM32F103T8"
#define ADC_TYPE "MCU's ADC"
#define FPGA_TYPE "None"
#define SCH_VER "2.46"
// #define SSD1316 1
// #define MFTSEEED "Manufacturer"
// #define MFTMINI "Manufacturer"
#define SPIx SPI1
#define FLASH_PAGE 0x0400
//--------------------------- key <20><>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD>ź<EFBFBD> ------------------------------//
#define KEY1_PIN GPIO_Pin_9 //PA8
#define KEY2_PIN GPIO_Pin_6 //PA6
#define KEY_1 !(GPIOA->IDR & KEY1_PIN)
#define KEY_2 !(GPIOA->IDR & KEY2_PIN)
#define KEY_DFU KEY_1
#define KEY_ON 0
#define I2C1_DMA_CHANNEL_TX DMA1_Channel6
#define I2C1_DMA_CHANNEL_RX DMA1_Channel7
#define I2C2_DMA_CHANNEL_TX DMA1_Channel4
#define I2C2_DMA_CHANNEL_RX DMA1_Channel5
#define I2C1_DR_Address 0x40005410
#define I2C2_DR_Address 0x40005810
#define SERIAL_NO1 (*(u32*)0x1FFFF7E8)
#define SERIAL_NO2 (*(u32*)0x1FFFF7EC)
#define SERIAL_NO3 (*(u32*)0x1FFFF7F0)
//--------------------------- OLED <20><>ؿ<EFBFBD><D8BF><EFBFBD><EFBFBD>ź<EFBFBD> ------------------------------//
#define OLED_RST_PIN GPIO_Pin_8 //PA9
#define OLED_RST() GPIO_ResetBits(GPIOA, OLED_RST_PIN)
#define OLED_ACT() GPIO_SetBits (GPIOA, OLED_RST_PIN)
//------------------------------ <20><><EFBFBD>ȿ<EFBFBD><C8BF><EFBFBD><EFBFBD>ź<EFBFBD> --------------------------------//
#define HEAT_PIN GPIO_Pin_4 //PA15(JTDI)
#define HEAT_OFF() GPIOB->BRR = HEAT_PIN//GPIO_ResetBits(GPIOB, HEAT_PIN)
#define HEAT_ON() GPIOB->BSRR = HEAT_PIN//GPIO_SetBits (GPIOB, HEAT_PIN)
//---------------------<2D><><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD>--VB---------------------------------------//
#define VB_PIN GPIO_Pin_1 //PB1(Ai9)
//----------------------------ADX345 INT1,INT2--------------------------------//
#define INT1_PIN GPIO_Pin_5 //PB5
#define INT2_PIN GPIO_Pin_3 //PB3
//------------------------------ GPIO <20>˿<EFBFBD><CBBF><EFBFBD><EFBFBD><EFBFBD> -------------------------------//
#define GPIOA_OUTPUT() GPIOA->ODR = 0xFFFF;
#define GPIOA_L_DEF() GPIOA->CRL = 0x08888888; /* Ai7 K2 xxx xxx xxx xxx xxx xxx */
#define GPIOA_H_DEF() GPIOA->CRH = 0x8BBBB883; /* xxx SWC SWD D+ D- xxx K1 nCR */
#define GPIOB_OUTPUT() GPIOB->ODR = 0xFFFF;
#define GPIOB_L_DEF() GPIOB->CRL = 0x44838800; /* SDA SCL It1 Po It2 xxx Ai9 Ai8 */
#define GPIOB_H_DEF() GPIOB->CRH = 0x88888888; /* xxx xxx xxx xxx xxx xxx xxx xxx */
//--------------------------------- RCC <20><><EFBFBD><EFBFBD> ---------------------------------//
#define RCC_PLL_EN() RCC->CR |= 0x01000000;// PLL En
#define RCC_CFGR_CFG() RCC->CFGR |= 0x0068840A;/*RCC peripheral clock config
|||||||+--Bits3~0 = 1010 PLL used as sys clock
||||||+---Bits7~4 = 0000 AHB clock = SYSCLK
|||||+----Bits10~8 = 100 PCLK1=HCLK divided by 2
||||++----Bits13~11 = 000 PCLK2=HCLK
||||+-----Bits15~14 = 10 ADC prescaler PCLK2 divided by 6
|||+------Bit17~16 = 00 HSI/2 clock selected as PLL input clock
||++------Bits21~18 = 1010 PLL input clock x12
||+-------Bit22 = 1 USB prescaler is PLL clock
++--------Bits31~27 Reserved*/
/******************************** END OF FILE *********************************/

46
workspace/ts100/inc/UI.h Normal file
View File

@@ -0,0 +1,46 @@
/********************* (C) COPYRIGHT 2015 e-Design Co.,Ltd. **********************
File Name : UI.h
Version : S100 APP Ver 2.11
Description:
Author : Celery
Data: 2015/07/07
History:
2015/07/07 ͳһ<CDB3><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*******************************************************************************/
#ifndef _UI_H
#define _UI_H
#include "stm32f10x.h"
u32 Get_UpdataFlag(void);
void Set_UpdataFlag(u32 Cont);
void APP_Init(void);
u32 Calculation_TWork(u8 Flag);
void Temp_SetProc(void);
void Display_Temp(u8 x,s16 Temp);
void Show_Notice(void);
void Show_Warning(void);
void Show_MiniTS(void);
void Show_TempDown(s16 Temp,s16 Dst_Temp);
void Set_TemperatureShowFlag(u8 flag);
s16 TemperatureShow_Change(u8 flag ,s16 Tmp);
u8 Get_TemperatureShowFlag(void);
void Show_Ver(u8 ver[],u8 flag);
void Show_Triangle(u8 empty,u8 fill);
void Shift_Char(u8* ptr,u8 pos);
void Show_Set(void);
void Show_OrderChar(u8* ptr,u8 num,u8 width);
u8 Reverse_Bin8(u8 data);
void Show_ReverseChar(u8* ptr,u8 num,u8 width,u8 direction);
u8 Show_TempReverse(u8 num,u8 width,u8 direction);
void Show_HeatingIcon(u32 ht_flag,u16 active);
void Display_Str(u8 x, char* str);
void Display_Str10(u8 x, char* str);
void Clear_Pervious(u16 data);
void Print_Integer(s32 data,u8 posi);
u8 Roll_Num(u16 Step,u8 Flag);
void OLed_Display(void);
void Show_Cal(u8 flag);
void Show_Config(void);
#endif
/******************************** END OF FILE *********************************/

View File

@@ -0,0 +1,404 @@
#ifndef _WORDLIB_H
#define _WORDLIB_H
const u8 wordlib[] = { //16*16 <20><><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD>
0x00,0x00,0x00,0xF8,0xFE,0x03,0x01,0x01,0x01,0x03,0xFE,0xFC,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x7F,0xE0,0x80,0x80,0x80,0xC0,0x7F,0x3F,0x07,0x00,0x00,0x00,/*"0",0*/
0x00,0x00,0x00,0x08,0x04,0x04,0x06,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xFF,0xFF,0x80,0x80,0x80,0x00,0x00,0x00,0x00,/*"1",1*/
0x00,0x00,0x00,0x06,0x07,0x01,0x01,0x01,0x81,0xC3,0x7F,0x3E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xE0,0xF0,0xD8,0xCC,0xC6,0xC3,0xC0,0xC0,0xE0,0x00,0x00,0x00,0x00,/*"2",2*/
0x00,0x00,0x00,0x06,0x07,0x81,0x81,0x81,0xC1,0x63,0x3F,0x1E,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xE0,0xC0,0x80,0x80,0x81,0x81,0xC3,0x7F,0x3E,0x00,0x00,0x00,0x00,/*"3",3*/
0x00,0x00,0x00,0x00,0xC0,0x60,0x38,0x0C,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x06,0x07,0x05,0x04,0x04,0x84,0xFF,0xFF,0xC4,0x84,0x06,0x00,0x00,0x00,/*"4",4*/
0x00,0x00,0x00,0xFF,0xFF,0x83,0x83,0x83,0x83,0x83,0x83,0x03,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0xE0,0xC0,0x80,0x80,0x80,0x80,0xC1,0x7F,0x3F,0x08,0x00,0x00,0x00,/*"5",5*/
0x00,0x00,0x00,0xE0,0xF8,0x9C,0x8E,0xC2,0xC3,0xC1,0x81,0x81,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x3F,0x7F,0xC0,0x80,0x80,0x80,0x80,0xC1,0x7F,0x3F,0x00,0x00,0x00,/*"6",6*/
0x00,0x00,0x00,0x0F,0x03,0x03,0x03,0x03,0x83,0xE3,0x3B,0x0F,0x03,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0xE0,0x78,0x1E,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,/*"7",7*/
0x00,0x00,0x18,0x7E,0x7E,0xC3,0x81,0x81,0x81,0x81,0x67,0x7E,0x3C,0x00,0x00,0x00,
0x00,0x00,0x1C,0x7E,0xFF,0xC1,0x80,0x80,0x80,0x81,0xE3,0x7F,0x3C,0x00,0x00,0x00,/*"8",8*/
0x00,0x00,0x78,0xFE,0xC6,0x03,0x01,0x01,0x01,0x03,0x9E,0xFC,0xF0,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x01,0x83,0x83,0xC3,0x61,0x71,0x3F,0x0F,0x01,0x00,0x00,0x00,/*"9",9*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",10*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x01,0x01,0x01,0x00,//"+",11
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,//"-",12
0x0E,0x11,0x11,0x0E,0xE0,0xF8,0x0C,0x06,0x03,0x01,0x01,0x01,0x01,0x02,0x1E,0x00,
0x00,0x00,0x00,0x00,0x0F,0x3F,0x70,0xC0,0x80,0x80,0x80,0x80,0x80,0x40,0x20,0x00,/*"<22><>",13*/
0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0xC0,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,//":",14
0x08,0x14,0x22,0x14,0x08,0x02,0x02,0xFE,0x06,0x02,0x02,0x02,0xC2,0x02,0x06,0x1E,
0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xFF,0x81,0x81,0x01,0x01,0x03,0x00,0x00,0x00,/*"<22>H",15*/
0xC0,0x30,0x08,0x04,0x04,0x02,0xFA,0xAA,0xFA,0x02,0x04,0x04,0x08,0x30,0xC0,0x00,
0x07,0x18,0x20,0x40,0x58,0xA4,0xDB,0xDE,0xDB,0xA4,0x58,0x40,0x20,0x18,0x07,0x00,/*"<22>¶ȼ<C2B6>",16*/
};
const u8 Maplib[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,
0x98,0xBF,0xBF,0x98,0x88,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0x60,0x60,0x60,0x60,0x60,0x60,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
0x90,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x70,0xF8,0x88,0x84,0x82,0x82,0x83,
0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x82,
0x82,0x82,0x82,0x82,0x86,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
0x84,0x84,0x84,0x84,0x84,0x84,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,/*"C:\Users\888\Desktop\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.BMP",0*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,
0xB0,0xFE,0xFE,0xB0,0x90,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x20,0x60,0x60,0x60,0x60,0x60,0x60,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
0x90,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x70,0xF8,0x88,0x84,0x82,0x82,0x83,
0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x82,
0x82,0x82,0x82,0x82,0x86,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
0x84,0x84,0x84,0x84,0x84,0x84,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0xFE,0x00,/*"C:\Users\888\Desktop\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.BMP",0*/
// 0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0x00,0x00,0xF0,0xF0,0xF0,0x00,0x00,0xF0,0xF0,0x00,//"<22><>ͷ"2//
// 0x01,0x03,0x07,0x0F,0x1F,0x3F,0x00,0x00,0x0F,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00,
0x00,0xF0,0xF0,0x00,0x00,0xF0,0xF0,0xF0,0x00,0x00,0xFC,0xF8,0xF0,0xE0,0xC0,0x80, ///"<22><>ͷ"7///
0x00,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x0F,0x00,0x00,0x3F,0x1F,0x0F,0x07,0x03,0x01,
// 0x00,0xF8,0xF8,0x00,0x00,0xF8,0xF8,0xF8,0xF8,0x00,0x00,0xFE,0xFE,0xF8,0xE0,0x80,
// 0x00,0x1F,0x1F,0x00,0x00,0x1F,0x1F,0x1F,0x1F,0x00,0x00,0x7F,0x7F,0x1F,0x07,0x01 //"<22><>ͷ8"//
};
const u8 Maplib1[] = {/* 14 * 16*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",15*/
0x00,0x01,0xFF,0xFF,0x01,0x01,0x01,0x01,0x01,0x01,0x81,0xC6,0x7E,0x38,
0x00,0x80,0xFF,0xFF,0x81,0x81,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,/*"P",0*/
0x00,0x20,0x20,0x20,0xE0,0xE0,0x00,0x80,0x40,0x40,0x20,0x60,0xC0,0x40,
0x00,0x80,0x80,0x80,0xFF,0xFF,0x81,0x80,0x80,0x80,0x00,0x00,0x00,0x00,/*"r",1*/
0x00,0x00,0x00,0x80,0x40,0x40,0x20,0x20,0x20,0x40,0x40,0x80,0x00,0x00,
0x00,0x00,0x3F,0x7F,0x44,0x84,0x84,0x84,0x84,0x84,0x84,0x47,0x27,0x00,/*"e",2*/
0x00,0x00,0x00,0x80,0x40,0x40,0x20,0x20,0x20,0x40,0x40,0xC0,0x00,0x00,
0x00,0x00,0x20,0xC3,0x82,0x86,0x84,0x84,0x8C,0x8C,0x88,0x78,0x30,0x00,/*"s",3*/
0x00,0x00,0x00,0x80,0x40,0x40,0x20,0x20,0x20,0x40,0x40,0xC0,0x00,0x00,
0x00,0x00,0x20,0xC3,0x82,0x86,0x84,0x84,0x8C,0x8C,0x88,0x78,0x30,0x00,/*"s",4*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x60,0x20,0x10,0x18,0x0C,0x86,
0xE0,0xE0,0xE0,0xEC,0xFC,0xF2,0xF3,0xF1,0xF0,0xF8,0xEC,0xE4,0xE4,0xE2,0xE3,0x01,/*"C:\Users\888\Desktop\sssss.BMP",0*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x40,0x20,0x30,0x18,0x0C,
0xC0,0xC0,0xC0,0xD8,0xF8,0xE4,0xE6,0xE3,0xE1,0xF1,0xD8,0xC8,0xC8,0xC4,0xC6,0x03,/*"C:\Users\888\Desktop\sssss.BMP",0*/
0xFC,0xFC,0xFC,0x00,0x00,0x00,0x00,0xC0,0x38,0x26,0x25,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x01,0x02,0x7F,0x7F,0x7F,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x39,0x48,
0x48,0x48,0x48,0x30,0x10,0x08,0x08,0x04,/*"C:\Users\888\Desktop\<5C><><EFBFBD><EFBFBD>.BMP",0*/
0xFC,0xFC,0x00,0x00,0x00,0x00,0xC0,0x38,0x26,0x25,0x01,0x01,0x01,0x01,0x01,0x01,
0x01,0x01,0x02,0x02,0x7F,0x7F,0x06,0x09,0x09,0x09,0x09,0x09,0x09,0x39,0x48,0x48,
0x48,0x48,0x30,0x10,0x08,0x08,0x04,0x04,/*"C:\Users\888\Desktop\<5C><><EFBFBD><EFBFBD>.BMP",0*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0x60,0x30,0x18,0x0C,0x86,
0x00,0xE0,0xE0,0xEC,0xF4,0xF6,0xF6,0xFB,0xF5,0xE8,0xE8,0xE4,0xE2,0xE2,0xE1,0x00,/*"δ<><CEB4><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>",0*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xC0,0x60,0x30,0x18,0x0C,
0x00,0xC0,0xC0,0xD8,0xE8,0xEC,0xEC,0xF6,0xEB,0xD1,0xD1,0xC8,0xC4,0xC4,0xC2,0x01,/*"δ<><CEB4><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>",0*/
0xFE,0xFE,0xFE,0x80,0x40,0x40,0x60,0x58,0x54,0x02,0x02,0x02,0x02,0x02,0x02,0x84,
0x3F,0x3F,0x3F,0x00,0x01,0x01,0x01,0x01,0x01,0x07,0x05,0x05,0x06,0x02,0x01,0x00,/*"δ<><CEB4><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>",0*/
0xFE,0xFE,0x80,0x40,0x40,0x60,0x58,0x54,0x02,0x02,0x02,0x02,0x02,0x02,0x84,0x84,
0x3F,0x3F,0x00,0x01,0x01,0x01,0x01,0x01,0x07,0x05,0x05,0x06,0x02,0x01,0x00,0x00,/*"δ<><CEB4><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>",0*/
};
const u8 MiniTS[] = {/*16*16*/
0x01,0xF9,0xFF,0x3F,0xFF,0xF0,0x80,0x00,0x80,0xF0,0x7E,0xFF,0xFF,0xFF,0x01,0x01,
0x80,0xFF,0xFF,0x80,0x83,0x1F,0xFF,0xF8,0x3F,0x87,0x80,0xFF,0xFF,0xFF,0x80,0x80,/*"M",0*/
0x00,0x00,0x00,0x20,0x20,0x20,0x63,0xE3,0xE3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x80,0x80,0x80,0xFF,0xFF,0x80,0x80,0x80,0x80,0x00,0x00,0x00,/*"i",1*/
0x00,0x20,0xE0,0xE0,0xE0,0xC0,0x40,0x60,0x20,0x20,0x60,0xC0,0xC0,0x00,0x00,0x00,
0x00,0x80,0xFF,0xFF,0xFF,0x80,0x80,0x00,0x00,0x80,0x80,0xFF,0xFF,0x80,0x80,0x00,/*"n",2*/
0x00,0x00,0x00,0x20,0x20,0x20,0x63,0xE3,0xE3,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x80,0x80,0x80,0xFF,0xFF,0x80,0x80,0x80,0x80,0x00,0x00,0x00,/*"i",3*/
0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"-",4*/
0x00,0x06,0x07,0x03,0x01,0x01,0xFF,0xFF,0xFF,0x01,0x01,0x01,0x03,0x0F,0x0C,0x00,
0x00,0x00,0x00,0x00,0x80,0x80,0xFF,0xFF,0xFF,0x80,0x80,0x00,0x00,0x00,0x00,0x00,/*"T",5*/
0x00,0x00,0x00,0x80,0xC0,0x40,0x60,0x20,0x20,0x60,0x40,0xC0,0x80,0x00,0x00,0x00,
0x00,0x0E,0x3F,0x7F,0xE1,0x80,0x80,0x80,0x80,0x80,0xC0,0x71,0x7F,0x3F,0x00,0x00,/*"o",6*/
0x00,0x00,0x00,0x80,0xC0,0x40,0x60,0x20,0x20,0x60,0x40,0xC0,0x80,0x00,0x00,0x00,
0x00,0x0E,0x3F,0x7F,0xE1,0x80,0x80,0x80,0x80,0x80,0xC0,0x71,0x7F,0x3F,0x00,0x00,/*"o",7*/
0x00,0x00,0x00,0x01,0x01,0x01,0x01,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x80,0x80,0x80,0x80,0xFF,0xFF,0x80,0x80,0x80,0x80,0x00,0x00,0x00,/*"l",8*/
0x00,0x00,0x00,0x80,0xC0,0x40,0x60,0x20,0x20,0x60,0x40,0xC0,0xC0,0x00,0x00,0x00,
0x00,0x00,0x20,0xE3,0xC3,0x86,0x86,0x84,0x8C,0x8C,0x8C,0xF8,0x78,0x30,0x00,0x00,/*"s",9*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",10*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",11*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",12*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",13*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",14*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",15*/
};
//const u8 Arrow[] = {/*16*16*/
// 0x00,0x03,0x0E,0x18,0x60,0xC3,0x06,0x18,0x70,0xC0,0x00,0x00,0x00,0x80,0x60,0x38,
// 0x0C,0x83,0xC1,0x30,0x0C,0x07,0x01,0x00,/*"<22><>",0*/
// 0x00,0x00,0xC0,0x60,0x18,0x0C,0xC3,0x71,0x18,0x06,0x03,0x00,0x00,0x01,0x03,0x0C,
// 0x30,0x61,0x87,0x0C,0x30,0xE0,0x80,0x00,/*"<22><>",0*/
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
// 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*" ",0*/
//};
const u8 Triangle[] = {/*16*16*/
0x80,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0xFE,0x00,0x00,0x00,
0x00,0x00,0x01,0x01,0x02,0x02,0x04,0x04,0x08,0x08,0x10,0x10,0x3F,0x00,0x00,0x00,/*"<22><><EFBFBD><EFBFBD>",0*/
0x00,0x00,0xFE,0x04,0x04,0x08,0x08,0x10,0x10,0x20,0x20,0x40,0x40,0x80,0x80,0x00,
0x00,0x00,0x3F,0x10,0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x01,0x01,0x00,0x00,0x00,/*"<22>ҡ<EFBFBD>",0*/
0x00,0x80,0x80,0xC0,0xC0,0x60,0x60,0x30,0x30,0x18,0x18,0x0C,0x0C,0xFE,0x00,0x00,
0x00,0x01,0x01,0x03,0x03,0x06,0x06,0x0C,0x0C,0x18,0x18,0x30,0x30,0x7F,0x00,0x00,/*"<22>Ӵ<EFBFBD><D3B4><EFBFBD><EFBFBD><EFBFBD>",0*/
0x00,0x00,0xFE,0x0C,0x0C,0x18,0x18,0x30,0x30,0x60,0x60,0xC0,0xC0,0x80,0x80,0x00,
0x00,0x00,0x7F,0x30,0x30,0x18,0x18,0x0C,0x0C,0x06,0x06,0x03,0x03,0x01,0x01,0x00,/*"<22>Ӵ<EFBFBD><D3B4>ҡ<EFBFBD>",0*/
0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,0x00,0x00,0x00,
0x00,0x00,0x01,0x01,0x03,0x03,0x07,0x07,0x0F,0x0F,0x1F,0x1F,0x3F,0x00,0x00,0x00,/*"<22><><EFBFBD><EFBFBD>",1*/
0x00,0x00,0xFE,0xFC,0xFC,0xF8,0xF8,0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0x80,0x80,0x00,
0x00,0x00,0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,/*"<22>ҡ<EFBFBD>",1*/
};
const u8 IhIcon[] = {
0x00,0xF0,0xFE,0xFF,0xF0,0x00,
0x00,0x7F,0x7F,0x7F,0x7F,0x00,/*"<22><><EFBFBD><EFBFBD>",0*/
0xFF,0x0F,0xE1,0xE0,0x0F,0xFF,
0xFF,0x80,0xBF,0xBF,0x80,0xFF,/*"<22><><EFBFBD><EFBFBD>",0*/
};
const u8 TempIcon[] = {/*16*16*/
0x10,0x18,0x8C,0xC6,0x63,0x63,0xC6,0x8C,0x18,0x10,
0x42,0x63,0x31,0x18,0x0C,0x0C,0x18,0x31,0x63,0x42,/*"10*16",0*/
0x00,0xF0,0x1E,0x1F,0xF0,0x00,
0x00,0xFF,0x80,0x80,0xFF,0x00,/*"6*16",0*/
0x42,0xC6,0x8C,0x18,0x30,0x30,0x18,0x8C,0xC6,0x42,
0x08,0x18,0x31,0x63,0xC6,0xC6,0x63,0x31,0x18,0x08,/*"10*16",1*/
0x8C,0x8C,0xC6,0xC6,0x8C,0x8C,0xC6,0xC6,0x8C,0x8C,
0x31,0x31,0x18,0x18,0x31,0x31,0x18,0x18,0x31,0x31,/*"10*16",2*/
0x00,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x8C,0x00,
0x00,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x31,0x00,/*"<22><EFBFBD>ƽ<EFBFBD><C6BD>",0*/
0x80,0xC0,0x60,0x30,0x98,0xCC,0x66,0x33,0x33,0x66,0xCC,0x98,0x30,0x60,0xC0,0x80,
0x88,0xCC,0x66,0x33,0x19,0x0C,0x06,0x03,0x03,0x06,0x0C,0x19,0x33,0x66,0xCC,0x88,/*"<22><><EFBFBD><EFBFBD>",0*/
0x11,0x33,0x66,0xCC,0x98,0x30,0x60,0xC0,0xC0,0x60,0x30,0x98,0xCC,0x66,0x33,0x11,
0x01,0x03,0x06,0x0C,0x19,0x33,0x66,0xCC,0xCC,0x66,0x33,0x19,0x0C,0x06,0x03,0x01,/*"<22><><EFBFBD><EFBFBD>",0*/
};
const u8 Warning[] = {/*10*16*/
0x01,0xFF,0x00,0xE1,0x1F,0xE0,0x00,0xFF,0x01,0x00,0x00,0x01,0x1E,0x01,0x00,0x01,
0x1E,0x01,0x00,0x00,/*"W",0*/
0x00,0x60,0x10,0x10,0x90,0x90,0xE0,0x00,0x00,0x00,0x00,0x0E,0x11,0x11,0x10,0x08,
0x1F,0x18,0x00,0x00,/*"a",1*/
0x10,0x10,0xF0,0x40,0x20,0x10,0x10,0x30,0x00,0x00,0x10,0x10,0x1F,0x10,0x10,0x00,
0x00,0x00,0x00,0x00,/*"r",2*/
0x10,0xF0,0x20,0x10,0x10,0x10,0x10,0xE0,0x00,0x00,0x10,0x1F,0x10,0x00,0x00,0x00,
0x10,0x1F,0x10,0x00,/*"n",3*/
0x00,0x00,0x10,0x13,0xF3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x1F,0x10,
0x10,0x00,0x00,0x00,/*"i",4*/
0x10,0xF0,0x20,0x10,0x10,0x10,0x10,0xE0,0x00,0x00,0x10,0x1F,0x10,0x00,0x00,0x00,
0x10,0x1F,0x10,0x00,/*"n",5*/
0x00,0xE0,0x10,0x10,0x10,0x10,0xF0,0x10,0x00,0x00,0x00,0x7D,0x8A,0x8A,0x8A,0x8A,
0x91,0x70,0x00,0x00,/*"g",6*/
0x00,0x00,0x00,0x80,0xE0,0xF8,0xFE,0x07,0x07,0xFE,0xF8,0xE0,0x80,0x00,0x00,0x00,
0x10,0x1C,0x1F,0x1F,0x1F,0x1F,0x1F,0x12,0x12,0x1F,0x1F,0x1F,0x1F,0x1F,0x1C,0x10,/*"C:\Users\888\Desktop\attention.bmp",0*/
};
const u8 SenErr[] = {/*10*16*/
0x00,0x1C,0x22,0x21,0x41,0x41,0x41,0x82,0x07,0x00,0x00,0x1E,0x08,0x10,0x10,0x10,
0x10,0x08,0x07,0x00,/*"S",0*/
0x00,0xC0,0xA0,0x90,0x90,0x90,0x90,0xA0,0xC0,0x00,0x00,0x07,0x08,0x10,0x10,0x10,
0x10,0x08,0x04,0x00,/*"e",1*/
0x10,0xF0,0x20,0x10,0x10,0x10,0x10,0xE0,0x00,0x00,0x10,0x1F,0x10,0x00,0x00,0x00,
0x10,0x1F,0x10,0x00,/*"n",2*/
0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,/*"-",3*/
0x01,0xFF,0x21,0x21,0x21,0x21,0xF9,0x03,0x04,0x00,0x10,0x1F,0x10,0x10,0x10,0x10,
0x10,0x18,0x04,0x00,/*"E",4*/
0x00,0x10,0x10,0xF0,0x40,0x20,0x10,0x10,0x30,0x00,0x00,0x10,0x10,0x1F,0x10,0x10,
0x00,0x00,0x00,0x00,/*"r",5*/
0x00,0x10,0x10,0xF0,0x40,0x20,0x10,0x10,0x30,0x00,0x00,0x10,0x10,0x1F,0x10,0x10,
0x00,0x00,0x00,0x00,/*"r",6*/
};
const u8 HighVt[] = {/*10*16*/
0x01,0xFF,0x41,0x40,0x40,0x40,0x41,0xFF,0x01,0x00,0x10,0x1F,0x10,0x00,0x00,0x00,
0x10,0x1F,0x10,0x00,/*"H",0*/
0x00,0x00,0x10,0x13,0xF3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x10,0x1F,0x10,
0x10,0x00,0x00,0x00,/*"i",1*/
0x00,0x00,0xE0,0x10,0x10,0x10,0x10,0xF0,0x10,0x00,0x00,0x60,0x9D,0x8A,0x8A,0x8A,
0x8A,0x91,0x70,0x00,/*"g",2*/
0x01,0xFF,0x20,0x10,0x10,0x10,0x10,0xE0,0x00,0x00,0x10,0x1F,0x10,0x00,0x00,0x00,
0x10,0x1F,0x10,0x00,/*"h",3*/
0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,/*"-",3*/
0x01,0x07,0x79,0x80,0x00,0x80,0x79,0x07,0x01,0x00,0x00,0x00,0x00,0x07,0x1C,0x07,
0x00,0x00,0x00,0x00,/*"V",5*/
0x00,0x00,0x10,0x10,0xFE,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,
0x10,0x08,0x00,0x00,/*"t",6*/
};
const u8 LowVot[] = {/*10*16*/
0x01,0xFF,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x1F,0x10,0x10,0x10,0x10,
0x10,0x18,0x04,0x00,/*"L",0*/
0x00,0xC0,0x20,0x10,0x10,0x10,0x10,0x20,0xC0,0x00,0x00,0x07,0x08,0x10,0x10,0x10,
0x10,0x08,0x07,0x00,/*"o",1*/
0x10,0xF0,0x00,0x10,0xF0,0x10,0x00,0xF0,0x10,0x00,0x00,0x03,0x1C,0x03,0x00,0x03,
0x1C,0x03,0x00,0x00,/*"w",2*/
0x00,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,/*"-",3*/
0x01,0x07,0x79,0x80,0x00,0x80,0x79,0x07,0x01,0x00,0x00,0x00,0x00,0x07,0x1C,0x07,
0x00,0x00,0x00,0x00,/*"V",4*/
0x00,0xC0,0x20,0x10,0x10,0x10,0x10,0x20,0xC0,0x00,0x00,0x07,0x08,0x10,0x10,0x10,
0x10,0x08,0x07,0x00,/*"o",5*/
0x00,0x00,0x10,0x10,0xFE,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,
0x10,0x08,0x00,0x00,/*"t",6*/
};
const u8 Cal_UnDone[] = { /*16*16 Cal_Ud*/
0xE0,0x18,0x04,0x02,0x12,0x21,0x41,0x81,0x81,0x41,0x22,0x12,0x04,0x18,0xE0,0x00,
0x03,0x0C,0x10,0x20,0x28,0x44,0x42,0x41,0x41,0x42,0x24,0x28,0x10,0x0C,0x03,0x00,/*"У׼ʧ<D7BC><CAA7>.BMP",0*/
0xF0,0x0C,0x02,0x01,0x01,0x01,0x01,0x02,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x0C,0x08,0x10,0x10,0x10,0x10,0x08,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"C",0*/
0x00,0x60,0x10,0x10,0x90,0x90,0x90,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0E,0x11,0x11,0x10,0x10,0x08,0x1F,0x10,0x18,0x00,0x00,0x00,0x00,0x00,0x00,/*"a",1*/
0x00,0x01,0x01,0x01,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"l",2*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,/*"_",3*/
0x00,0x01,0x07,0x19,0xE0,0xB0,0x0D,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x10,0x18,0x17,0x00,0x01,0x16,0x18,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"X",4*/
};
const u8 Cal_Done[] = {/*16*16 Cal_Dn*/
0xE0,0x18,0x64,0xE2,0x82,0x01,0x01,0x01,0x01,0x01,0x82,0xE2,0x64,0x18,0xE0,0x00,
0x03,0x0C,0x10,0x21,0x27,0x4E,0x58,0x50,0x58,0x4E,0x27,0x21,0x10,0x0C,0x03,0x00,/*"У׼<D0A3>ɹ<EFBFBD>.BMP",0*/
0xF0,0x0C,0x02,0x01,0x01,0x01,0x01,0x02,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x03,0x0C,0x08,0x10,0x10,0x10,0x10,0x08,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"C",0*/
0x00,0x60,0x10,0x10,0x90,0x90,0x90,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x0E,0x11,0x11,0x10,0x10,0x08,0x1F,0x10,0x18,0x00,0x00,0x00,0x00,0x00,0x00,/*"a",1*/
0x00,0x01,0x01,0x01,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x10,0x10,0x10,0x1F,0x10,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"l",2*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,/*"_",3*/
0x01,0x07,0x79,0x80,0x00,0x80,0x79,0x07,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0x1C,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"V",4*/
};
const u8 Number12[] = {/*12*16*/
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x10,0x20,
0x20,0x10,0x0F,0x00,0x00,0x00,0x00,0x00,/*"0",0*/
0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,
0x20,0x20,0x00,0x00,0x00,0x00,0x00,0x00,/*"1",1*/
0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x28,0x24,
0x22,0x21,0x30,0x00,0x00,0x00,0x00,0x00,/*"2",2*/
0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x20,0x20,
0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,/*"3",3*/
0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x04,0x24,
0x24,0x3F,0x24,0x00,0x00,0x00,0x00,0x00,/*"4",4*/
0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x21,0x20,
0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,/*"5",5*/
0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x11,0x20,
0x20,0x11,0x0E,0x00,0x00,0x00,0x00,0x00,/*"6",6*/
0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"7",7*/
0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x22,0x21,
0x21,0x22,0x1C,0x00,0x00,0x00,0x00,0x00,/*"8",8*/
0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0x22,
0x22,0x11,0x0F,0x00,0x00,0x00,0x00,0x00,/*"9",9*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*".",10*/
};
const u8 Number10[] = { /*10*16*/
0x00,0xE0,0x18,0x04,0x04,0x04,0x04,0x18,0xE0,0x00,0x00,0x0F,0x30,0x40,0x40,0x40,
0x40,0x30,0x0F,0x00,/*"0",0*/
0x00,0x00,0x08,0x08,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x7F,0x40,
0x40,0x00,0x00,0x00,/*"1",1*/
0x00,0x78,0x04,0x04,0x04,0x04,0x04,0x88,0x70,0x00,0x00,0x60,0x50,0x48,0x44,0x42,
0x41,0x40,0x70,0x00,/*"2",2*/
0x00,0x38,0x04,0x04,0x84,0x84,0xC8,0x30,0x00,0x00,0x00,0x38,0x40,0x40,0x40,0x40,
0x40,0x21,0x1E,0x00,/*"3",3*/
0x00,0x00,0x80,0x60,0x10,0x08,0xFE,0x00,0x00,0x00,0x00,0x07,0x04,0x04,0x44,0x44,
0x7F,0x44,0x44,0x00,/*"4",4*/
0x00,0x00,0xFC,0x04,0x84,0x84,0x84,0x04,0x04,0x00,0x00,0x38,0x41,0x41,0x40,0x40,
0x40,0x21,0x1E,0x00,/*"5",5*/
0x00,0xC0,0x30,0x88,0x84,0x84,0x84,0x04,0x18,0x00,0x00,0x0F,0x31,0x40,0x40,0x40,
0x40,0x21,0x1E,0x00,/*"6",6*/
0x00,0x1C,0x04,0x04,0x84,0x44,0x34,0x0C,0x04,0x00,0x00,0x00,0x00,0x7E,0x01,0x00,
0x00,0x00,0x00,0x00,/*"7",7*/
0x00,0x70,0x88,0x04,0x04,0x04,0x04,0x88,0x70,0x00,0x00,0x1C,0x22,0x41,0x41,0x41,
0x41,0x22,0x1C,0x00,/*"8",8*/
0x00,0xF0,0x08,0x04,0x04,0x04,0x04,0x18,0xE0,0x00,0x00,0x30,0x41,0x42,0x42,0x42,
0x22,0x19,0x07,0x00,/*"9",9*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,/*" ",10*/
0x1C,0x1C,0xC0,0x30,0x08,0x04,0x04,0x04,0x08,0x30,0x00,0x00,0x07,0x18,0x20,0x40,
0x40,0x40,0x20,0x10,/*"<22><>",11*/
0x1C,0x12,0x0C,0x02,0x02,0xFE,0x82,0x82,0xE2,0x02,0x00,0x00,0x00,0x00,0x40,0x7F,
0x40,0x00,0x03,0x00,/*"<22>H",12*/
};
const u8 Guide[] = { /*16*16*/
0x00,0x00,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x18,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"D:\yinyongqin\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD>.BMP",0*/
0x00,0x00,0x30,0x60,0xC0,0x80,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x18,0x0C,0x06,0x03,0x19,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,/*"D:\yinyongqin\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD>.BMP",0*/
0x00,0x00,0x30,0x60,0xC0,0x80,0x30,0x60,0xC0,0x80,0x30,0x60,0xC0,0x80,0x00,0x00,
0x00,0x00,0x18,0x0C,0x06,0x03,0x19,0x0C,0x06,0x03,0x19,0x0C,0x06,0x03,0x01,0x00,/*"D:\yinyongqin\<5C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD>.BMP",0*/
0x00,0x00,0x18,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*">",0*/
0x00,0x00,0x18,0x30,0x60,0xC0,0x98,0x30,0x60,0xC0,0x80,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x0C,0x06,0x03,0x01,0x0C,0x06,0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,/*">>",0*/
0x00,0x00,0x18,0x30,0x60,0xC0,0x98,0x30,0x60,0xC0,0x98,0x30,0x60,0xC0,0x80,0x00,
0x00,0x00,0x0C,0x06,0x03,0x01,0x0C,0x06,0x03,0x01,0x0C,0x06,0x03,0x01,0x00,0x00,/*">>>",0*/
};
const u8 Config[] = { /*16*16*/
0x00,0x00,0x00,0xC0,0xF0,0x38,0x08,0x04,0x04,0x04,0x04,0x08,0x08,0x1C,0x00,0x00,
0x00,0x00,0x00,0x0F,0x1F,0x30,0x60,0x40,0x40,0x40,0x40,0x20,0x30,0x08,0x00,0x00,/*"C",0*/
0x00,0x00,0x00,0xC0,0xF0,0x18,0x0C,0x04,0x04,0x04,0x0C,0x18,0xF0,0xC0,0x00,0x00,
0x00,0x00,0x00,0x07,0x1F,0x30,0x60,0x40,0x40,0x40,0x60,0x30,0x1F,0x07,0x00,0x00,/*"O",1*/
0x00,0x00,0x00,0x04,0xFC,0x1C,0x38,0xE0,0xC0,0x00,0x00,0x04,0xFC,0x04,0x00,0x00,
0x00,0x00,0x00,0x40,0x7F,0x40,0x00,0x00,0x01,0x07,0x1E,0x38,0x7F,0x00,0x00,0x00,/*"N",2*/
0x00,0x00,0x00,0x04,0xFC,0xFC,0x84,0x84,0x84,0x84,0xE4,0x04,0x0C,0x10,0x00,0x00,
0x00,0x00,0x00,0x40,0x7F,0x7F,0x40,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,/*"F",3*/
0x00,0x00,0x00,0x00,0x00,0x04,0x04,0x04,0xFC,0xFC,0x04,0x04,0x04,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x7F,0x40,0x40,0x40,0x00,0x00,0x00,/*"I",4*/
0x00,0x00,0x00,0xC0,0xF0,0x38,0x08,0x04,0x04,0x04,0x04,0x0C,0x1C,0x00,0x00,0x00,
0x00,0x00,0x00,0x07,0x1F,0x38,0x60,0x40,0x40,0x42,0x42,0x3E,0x3E,0x02,0x02,0x00,/*"G",5*/
};
#endif

View File

@@ -0,0 +1,85 @@
/**
******************************************************************************
* @file stm32f10x_conf.h
* @author MCD Application Team
* @version V4.0.0
* @date 21-January-2013
* @brief Library configuration file.
******************************************************************************
* @attention
*
* <h2><center>&copy; COPYRIGHT 2013 STMicroelectronics</center></h2>
*
* Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.st.com/software_license_agreement_liberty_v2
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F10x_CONF_H
#define __STM32F10x_CONF_H
/* Includes ------------------------------------------------------------------*/
/* Uncomment the line below to enable peripheral header file inclusion */
#include "stm32f10x_adc.h"
#include "stm32f10x_bkp.h"
#include "stm32f10x_can.h"
#include "stm32f10x_crc.h"
#include "stm32f10x_dac.h"
#include "stm32f10x_dbgmcu.h"
#include "stm32f10x_dma.h"
#include "stm32f10x_exti.h"
#include "stm32f10x_flash.h"
#include "stm32f10x_fsmc.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_i2c.h"
#include "stm32f10x_iwdg.h"
#include "stm32f10x_pwr.h"
#include "stm32f10x_rcc.h"
#include "stm32f10x_rtc.h"
#include "stm32f10x_sdio.h"
#include "stm32f10x_spi.h"
#include "stm32f10x_tim.h"
#include "stm32f10x_usart.h"
#include "stm32f10x_wwdg.h"
#include "misc.h" /* High level functions for NVIC and SysTick (add-on to CMSIS functions) */
/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* Uncomment the line below to expanse the "assert_param" macro in the
Standard Peripheral Library drivers code */
/* #define USE_FULL_ASSERT 1 */
/* Exported macro ------------------------------------------------------------*/
#ifdef USE_FULL_ASSERT
/*******************************************************************************
* Macro Name : assert_param
* Description : The assert_param macro is used for function's parameters check.
* Input : - expr: If expr is false, it calls assert_failed function
* which reports the name of the source file and the source
* line number of the call that failed.
* If expr is true, it returns no value.
* Return : None
*******************************************************************************/
#define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
/* Exported functions ------------------------------------------------------- */
void assert_failed(uint8_t* file, uint32_t line);
#else
#define assert_param(expr) ((void)0)
#endif /* USE_FULL_ASSERT */
#endif /* __STM32F10x_CONF_H */
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

View File

@@ -0,0 +1,73 @@
/******************** (C) COPYRIGHT 2013 e-Design Co., Ltd. ********************
File Name : USB_bot.h
Version : STM32 USB Disk Ver 3.4 Author : MCD Application Team & bure
*******************************************************************************/
#ifndef __USB_BOT_H
#define __USB_BOT_H
typedef struct _Bulk_Only_CBW
{
u32 dSignature;
u32 dTag;
u32 dDataLength;
u8 bmFlags;
u8 bLUN;
u8 bCBLength;
u8 CB[16];
}
Bulk_Only_CBW;
/* Bulk-only Command Status Wrapper */
typedef struct _Bulk_Only_CSW
{
u32 dSignature;
u32 dTag;
u32 dDataResidue;
u8 bStatus;
}
Bulk_Only_CSW;
#define BOT_IDLE 0 /* Idle state */
#define BOT_DATA_OUT 1 /* Data Out state */
#define BOT_DATA_IN 2 /* Data In state */
#define BOT_DATA_IN_LAST 3 /* Last Data In Last */
#define BOT_CSW_Send 4 /* Command Status Wrapper */
#define BOT_ERROR 5 /* error state */
#define BOT_CBW_SIGNATURE 0x43425355
#define BOT_CSW_SIGNATURE 0x53425355
#define BOT_CBW_PACKET_LENGTH 31
#define CSW_DATA_LENGTH 0x000D
/* CSW Status Definitions */
#define CSW_CMD_PASSED 0x00
#define CSW_CMD_FAILED 0x01
#define CSW_PHASE_ERROR 0x02
#define SEND_CSW_DISABLE 0
#define SEND_CSW_ENABLE 1
#define DIR_IN 0
#define DIR_OUT 1
#define BOTH_DIR 2
#define BULK_MAX_PACKET_SIZE 0x00000040
extern u8 Bot_State;
extern u16 Data_Len;
extern u8 Bot_State;
extern Bulk_Only_CBW CBW;
extern Bulk_Only_CSW CSW;
extern u8 Bulk_Buff[];
void Mass_Storage_In (void);
void Mass_Storage_Out (void);
void CBW_Decode(void);
void Transfer_Data_Request(u8* Data_Pointer, u16 Data_Len);
void Set_CSW (u8 CSW_Status, u8 Send_Permission);
void Bot_Abort(u8 Direction);
#endif
/********************************* END OF FILE ******************************/

View File

@@ -0,0 +1,73 @@
/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
* File Name : usb_conf.h
* Author : MCD Application Team
* Version : V2.2.1
* Date : 09/22/2008
* Description : Mass Storage Demo configuration header
********************************************************************************
* 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, STMICROELECTRONICS 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.
*******************************************************************************/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USB_CONF_H
#define __USB_CONF_H
/*-------------------------------------------------------------*/
/* EP_NUM */
/* defines how many endpoints are used by the device */
/*-------------------------------------------------------------*/
#define EP_NUM (3)
/*-------------------------------------------------------------*/
/* -------------- Buffer Description Table -----------------*/
/*-------------------------------------------------------------*/
/* buffer table base address */
#define BTABLE_ADDRESS (0x00)
/* EP0 */
/* rx/tx buffer base address */
#define ENDP0_RXADDR (0x18)
#define ENDP0_TXADDR (0x58)
/* EP1 */
/* tx buffer base address */
#define ENDP1_TXADDR (0x98)
/* EP2 */
/* Rx buffer base address */
#define ENDP2_RXADDR (0xD8)
/* ISTR events */
/* IMR_MSK */
/* mask defining which events has to be handled */
/* by the device application software */
#define IMR_MSK (CNTR_CTRM | CNTR_RESETM)
/* CTR service routines */
/* associated to defined endpoints */
//#define EP1_IN_Callback NOP_Process
#define EP2_IN_Callback NOP_Process
#define EP3_IN_Callback NOP_Process
#define EP4_IN_Callback NOP_Process
#define EP5_IN_Callback NOP_Process
#define EP6_IN_Callback NOP_Process
#define EP7_IN_Callback NOP_Process
#define EP1_OUT_Callback NOP_Process
//#define EP2_OUT_Callback NOP_Process
#define EP3_OUT_Callback NOP_Process
#define EP4_OUT_Callback NOP_Process
#define EP5_OUT_Callback NOP_Process
#define EP6_OUT_Callback NOP_Process
#define EP7_OUT_Callback NOP_Process
#endif /* __USB_CONF_H */
/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/

View File

@@ -0,0 +1,35 @@
/******************** (C) COPYRIGHT 2015 e-Design Co., Ltd. ********************
File Name : USB_desc.h
Version : STM32 USB Disk Ver 3.4 Author : MCD Application Team & bure
*******************************************************************************/
#ifndef __USB_DESC_H
#define __USB_DESC_H
#ifdef STM32F30X
#include "stm32f30x.h"
#else
#include "stm32f10x.h"
#endif
#define MASS_SIZ_DEVICE_DESC 18
#define MASS_SIZ_CONFIG_DESC 32
#define MASS_SIZ_STRING_LANGID 4
#define MASS_SIZ_STRING_VENDOR 38
#define MASS_SIZ_STRING_PRODUCT 38
#define MASS_SIZ_STRING_SERIAL 26
#define MASS_SIZ_STRING_INTERFACE 16
extern const u8 MASS_DeviceDescriptor[MASS_SIZ_DEVICE_DESC];
extern const u8 MASS_ConfigDescriptor[MASS_SIZ_CONFIG_DESC];
extern const u8 MASS_StringLangID[MASS_SIZ_STRING_LANGID];
extern const u8 MASS_StringVendor[MASS_SIZ_STRING_VENDOR];
extern const u8 MASS_StringProduct[MASS_SIZ_STRING_PRODUCT];
extern u8 MASS_StringSerial[MASS_SIZ_STRING_SERIAL];
extern const u8 MASS_StringInterface[MASS_SIZ_STRING_INTERFACE];
#endif
/********************************* END OF FILE ******************************/

View File

@@ -0,0 +1,64 @@
/******************** (C) COPYRIGHT 2015 e-Design Co., Ltd. ********************
File Name : USB_istr.h
Version : STM32 USB Disk Ver 3.4 Author : MCD Application Team & bure
*******************************************************************************/
#ifndef __USB_ISTR_H
#define __USB_ISTR_H
#include "usb_conf.h"
void CTR_HP(void);
void USB_Istr(void);
/* function prototypes Automatically built defining related macros */
#ifdef CTR_CALLBACK
void CTR_Callback(void);
#endif
#ifdef DOVR_CALLBACK
void DOVR_Callback(void);
#endif
#ifdef ERR_CALLBACK
void ERR_Callback(void);
#endif
#ifdef WKUP_CALLBACK
void WKUP_Callback(void);
#endif
#ifdef SUSP_CALLBACK
void SUSP_Callback(void);
#endif
#ifdef RESET_CALLBACK
void RESET_Callback(void);
#endif
#ifdef SOF_CALLBACK
void SOF_Callback(void);
#endif
#ifdef ESOF_CALLBACK
void ESOF_Callback(void);
#endif
void EP1_IN_Callback(void);
void EP2_IN_Callback(void);
void EP3_IN_Callback(void);
void EP4_IN_Callback(void);
void EP5_IN_Callback(void);
void EP6_IN_Callback(void);
void EP7_IN_Callback(void);
void EP1_OUT_Callback(void);
void EP2_OUT_Callback(void);
void EP3_OUT_Callback(void);
void EP4_OUT_Callback(void);
void EP5_OUT_Callback(void);
void EP6_OUT_Callback(void);
void EP7_OUT_Callback(void);
#endif
/********************************* END OF FILE ******************************/

View File

@@ -0,0 +1,51 @@
/******************** (C) COPYRIGHT 2015 e-Design Co., Ltd. ********************
File Name : USB_prop.h
Version : STM32 USB Disk Ver 3.4 Author : MCD Application Team & bure
*******************************************************************************/
#ifndef __usb_prop_H
#define __usb_prop_H
#include "usb_core.h"
#ifdef STM32F30X
#include "stm32f30x.h"
#elif STM32F10X_HD
#include "stm32f10x.h"
#endif
#define Mass_Storage_GetConfiguration NOP_Process
/* #define Mass_Storage_SetConfiguration NOP_Process*/
#define Mass_Storage_GetInterface NOP_Process
#define Mass_Storage_SetInterface NOP_Process
#define Mass_Storage_GetStatus NOP_Process
/* #define Mass_Storage_ClearFeature NOP_Process*/
#define Mass_Storage_SetEndPointFeature NOP_Process
#define Mass_Storage_SetDeviceFeature NOP_Process
/*#define Mass_Storage_SetDeviceAddress NOP_Process*/
/* MASS Storage Requests*/
#define GET_MAX_LUN 0xFE
#define MASS_STORAGE_RESET 0xFF
#define LUN_DATA_LENGTH 1
extern u32 Max_Lun;
void MASS_init(void);
void MASS_Reset(void);
void Mass_Storage_SetConfiguration(void);
void Mass_Storage_ClearFeature(void);
void Mass_Storage_SetDeviceAddress (void);
void MASS_Status_In (void);
void MASS_Status_Out (void);
RESULT MASS_Data_Setup(u8);
RESULT MASS_NoData_Setup(u8);
RESULT MASS_Get_Interface_Setting(u8 Interface, u8 AlternateSetting);
u8 *MASS_GetDeviceDescriptor(u16 );
u8 *MASS_GetConfigDescriptor(u16);
u8 *MASS_GetStringDescriptor(u16);
u8 *Get_Max_Lun(u16 Length);
void Get_SerialNum(void);
#endif
/********************************* END OF FILE ******************************/

View File

@@ -0,0 +1,42 @@
/******************** (C) COPYRIGHT 2015 e-Design Co., Ltd. ********************
File Name : USB_pwr.h
Version : STM32 USB Disk Ver 3.4 Author : MCD Application Team & bure
*******************************************************************************/
#ifndef __USB_PWR_H
#define __USB_PWR_H
#include "usb_core.h"
typedef enum _RESUME_STATE
{
RESUME_EXTERNAL,
RESUME_INTERNAL,
RESUME_LATER,
RESUME_WAIT,
RESUME_START,
RESUME_ON,
RESUME_OFF,
RESUME_ESOF
} RESUME_STATE;
typedef enum _DEVICE_STATE
{
UNCONNECTED,
ATTACHED,
POWERED,
SUSPENDED,
ADDRESSED,
CONFIGURED
} DEVICE_STATE;
void Suspend(void);
void Resume_Init(void);
void Resume(RESUME_STATE eResumeSetVal);
RESULT PowerOn(void);
RESULT PowerOff(void);
extern vu32 bDeviceState; /* USB device status */
extern vu8 fSuspendEnabled; /* true when suspend is possible */
#endif
/********************************* END OF FILE ******************************/

View File

@@ -0,0 +1,125 @@
/******************** (C) COPYRIGHT 2015 e-Design Co., Ltd. ********************
File Name : USB_scsi.h
Version : STM32 USB Disk Ver 3.4 Author : MCD Application Team & bure
*******************************************************************************/
#ifndef __USB_SCSI_H
#define __USB_SCSI_H
#ifdef STM32F30X
#include "stm32f30x.h"
#else
#include "stm32f10x.h"
#endif
/* SCSI Commands */
#define SCSI_FORMAT_UNIT 0x04
#define SCSI_INQUIRY 0x12
#define SCSI_MODE_SELECT6 0x15
#define SCSI_MODE_SELECT10 0x55
#define SCSI_MODE_SENSE6 0x1A
#define SCSI_MODE_SENSE10 0x5A
#define SCSI_ALLOW_MEDIUM_REMOVAL 0x1E
#define SCSI_READ6 0x08
#define SCSI_READ10 0x28
#define SCSI_READ12 0xA8
#define SCSI_READ16 0x88
#define SCSI_READ_CAPACITY10 0x25
#define SCSI_READ_CAPACITY16 0x9E
#define SCSI_REQUEST_SENSE 0x03
#define SCSI_START_STOP_UNIT 0x1B
#define SCSI_TEST_UNIT_READY 0x00
#define SCSI_WRITE6 0x0A
#define SCSI_WRITE10 0x2A
#define SCSI_WRITE12 0xAA
#define SCSI_WRITE16 0x8A
#define SCSI_VERIFY10 0x2F
#define SCSI_VERIFY12 0xAF
#define SCSI_VERIFY16 0x8F
#define SCSI_SEND_DIAGNOSTIC 0x1D
#define SCSI_READ_FORMAT_CAPACITIES 0x23
#define NO_SENSE 0
#define RECOVERED_ERROR 1
#define NOT_READY 2
#define MEDIUM_ERROR 3
#define HARDWARE_ERROR 4
#define ILLEGAL_REQUEST 5
#define UNIT_ATTENTION 6
#define DATA_PROTECT 7
#define BLANK_CHECK 8
#define VENDOR_SPECIFIC 9
#define COPY_ABORTED 10
#define ABORTED_COMMAND 11
#define VOLUME_OVERFLOW 13
#define MISCOMPARE 14
#define INVALID_COMMAND 0x20
#define INVALID_FIELED_IN_COMMAND 0x24
#define PARAMETER_LIST_LENGTH_ERROR 0x1A
#define INVALID_FIELD_IN_PARAMETER_LIST 0x26
#define ADDRESS_OUT_OF_RANGE 0x21
#define MEDIUM_NOT_PRESENT 0x3A
#define MEDIUM_HAVE_CHANGED 0x28
#define READ_FORMAT_CAPACITY_DATA_LEN 0x0C
#define READ_CAPACITY10_DATA_LEN 0x08
#define MODE_SENSE10_DATA_LEN 0x08
#define MODE_SENSE6_DATA_LEN 0x04
#define REQUEST_SENSE_DATA_LEN 0x12
#define STANDARD_INQUIRY_DATA_LEN 0x24 // 0x24
#define BLKVFY 0x04
extern u8 Page00_Inquiry_Data[];
extern u8 Standard_Inquiry_Data[];
extern u8 Mode_Sense6_data[];
extern u8 Mode_Sense10_data[];
extern u8 Scsi_Sense_Data[];
extern u8 ReadCapacity10_Data[];
extern u8 Bot_State;
void SCSI_Inquiry_Cmd(void);
void SCSI_ReadFormatCapacity_Cmd(void);
void SCSI_ReadCapacity10_Cmd(void);
void SCSI_RequestSense_Cmd (void);
void SCSI_Start_Stop_Unit_Cmd(void);
void SCSI_ModeSense6_Cmd (void);
void SCSI_ModeSense10_Cmd (void);
void SCSI_Write10_Cmd(u32 LBA , u32 BlockNbr);
void SCSI_Read10_Cmd(u32 LBA , u32 BlockNbr);
void SCSI_Verify10_Cmd(void);
void SCSI_Invalid_Cmd(void);
void SCSI_Valid_Cmd(void);
u8 SCSI_Address_Management(u8 Cmd , u32 LBA , u32 BlockNbr);
void Set_Scsi_Sense_Data(u8 Sens_Key, u8 Asc);
void SCSI_TestUnitReady_Cmd (void);
void SCSI_Format_Cmd (void);
#define SCSI_Prevent_Removal_Cmd SCSI_Valid_Cmd
// Invalid (Unsupported) commands
#define SCSI_READ_CAPACITY16_Cmd SCSI_Invalid_Cmd
//#define SCSI_FormatUnit_Cmd SCSI_Invalid_Cmd
#define SCSI_Write6_Cmd SCSI_Invalid_Cmd
#define SCSI_Write16_Cmd SCSI_Invalid_Cmd
#define SCSI_Write12_Cmd SCSI_Invalid_Cmd
#define SCSI_Read6_Cmd SCSI_Invalid_Cmd
#define SCSI_Read12_Cmd SCSI_Invalid_Cmd
#define SCSI_Read16_Cmd SCSI_Invalid_Cmd
#define SCSI_Send_Diagnostic_Cmd SCSI_Invalid_Cmd
#define SCSI_Mode_Select6_Cmd SCSI_Invalid_Cmd
#define SCSI_Mode_Select10_Cmd SCSI_Invalid_Cmd
#define SCSI_Verify12_Cmd SCSI_Invalid_Cmd
#define SCSI_Verify16_Cmd SCSI_Invalid_Cmd
#endif
/********************************* END OF FILE ******************************/