821 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			821 lines
		
	
	
		
			37 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/****************************************************************************
							 | 
						|||
| 
								 | 
							
								 *
							 | 
						|||
| 
								 | 
							
								 * Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
							 | 
						|||
| 
								 | 
							
								 *
							 | 
						|||
| 
								 | 
							
								 * This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
							 | 
						|||
| 
								 | 
							
								 * be copied by any method or incorporated into another program without
							 | 
						|||
| 
								 | 
							
								 * the express written consent of Aerospace C.Power. This Information or any portion
							 | 
						|||
| 
								 | 
							
								 * thereof remains the property of Aerospace C.Power. The Information contained herein
							 | 
						|||
| 
								 | 
							
								 * is believed to be accurate and Aerospace C.Power assumes no responsibility or
							 | 
						|||
| 
								 | 
							
								 * liability for its use in any way and conveys no license or title under
							 | 
						|||
| 
								 | 
							
								 * any patent or copyright and makes no representation or warranty that this
							 | 
						|||
| 
								 | 
							
								 * Information is free from patent or copyright infringement.
							 | 
						|||
| 
								 | 
							
								 *
							 | 
						|||
| 
								 | 
							
								 * ****************************************************************************/
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								 /* os shim includes */
							 | 
						|||
| 
								 | 
							
								#include "os_types.h"
							 | 
						|||
| 
								 | 
							
								#include "os_task.h"
							 | 
						|||
| 
								 | 
							
								#include "os_utils.h"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/* common includes */
							 | 
						|||
| 
								 | 
							
								#include "iot_io.h"
							 | 
						|||
| 
								 | 
							
								#include "iot_bitops.h"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/* debug includes*/
							 | 
						|||
| 
								 | 
							
								#include "dbg_io.h"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#include "apb_glb_reg.h"
							 | 
						|||
| 
								 | 
							
								#include "hw_reg_api.h"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#include "gpio_mtx_reg.h"
							 | 
						|||
| 
								 | 
							
								#include "pin_rf.h"
							 | 
						|||
| 
								 | 
							
								#include "gpio_reg.h"
							 | 
						|||
| 
								 | 
							
								#include "i2c_reg.h"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#include "i2c_hw.h"
							 | 
						|||
| 
								 | 
							
								#include "iot_i2c_api.h"
							 | 
						|||
| 
								 | 
							
								#include "iot_gpio_api.h"
							 | 
						|||
| 
								 | 
							
								#include "iot_irq.h"
							 | 
						|||
| 
								 | 
							
								#include "cpu.h"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#define OLED_X_WIDTH    132
							 | 
						|||
| 
								 | 
							
								#define OLED_Y_WIDTH    64
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#define I2C_OLED_ADD       0x3C
							 | 
						|||
| 
								 | 
							
								#define I2C_AT24C02_ADDR   0X50
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								int g_port = IOT_I2C_PORT_0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								const unsigned char pic1[]={
							 | 
						|||
| 
								 | 
							
								    0xFF,0x01,0x01,0xF9,0xF9,0x09,0x89,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0x49,
							 | 
						|||
| 
								 | 
							
								    0x49,0x49,0x49,0x49,0x49,0x49,0x09,0x09,0x89,0x89,0xC9,0xC1,0x61,0x31,0x31,0x49,
							 | 
						|||
| 
								 | 
							
								    0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,0xC9,
							 | 
						|||
| 
								 | 
							
								    0xD9,0xD9,0xD9,0xD9,0xD9,0xD9,0xD9,0xD9,0xD9,0x99,0x19,0xF9,0xF1,0x01,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x00,0x00,0xFF,0x01,0x00,0xFF,0xFF,0x00,0xC0,0xFE,0x06,0x06,0xE6,0x46,0x66,
							 | 
						|||
| 
								 | 
							
								    0x32,0x10,0x98,0xCC,0xCC,0x66,0x66,0x33,0x31,0x99,0x8C,0xCC,0xC6,0x66,0x33,0x32,
							 | 
						|||
| 
								 | 
							
								    0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,
							 | 
						|||
| 
								 | 
							
								    0x36,0x76,0xD6,0x06,0x06,0xFE,0xC0,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0x00,0x01,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x00,0x00,0xFF,0x00,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xF3,0x01,0xF8,0xFC,0x06,0x26,0xB3,0x33,0x99,0x99,0xCC,0xCC,0x66,0x66,0x23,
							 | 
						|||
| 
								 | 
							
								    0xD9,0xD9,0xD9,0xD9,0xD9,0xC9,0xC9,0xC9,0xC9,0x09,0xE9,0xC9,0x09,0x39,0xF1,0xC7,
							 | 
						|||
| 
								 | 
							
								    0x0E,0x38,0xE1,0xC7,0x0C,0x38,0xE1,0xC0,0x0F,0x3F,0x00,0x01,0xFF,0x00,0x00,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x00,0x00,0xFF,0x00,0x00,0xFF,0x07,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0x00,0x3F,0xFF,0x00,0x00,0xFF,0x80,0x01,0xFD,0xE4,0x0C,0x64,0xE6,0x26,
							 | 
						|||
| 
								 | 
							
								    0x64,0x24,0xE6,0x06,0x06,0xFE,0xF0,0x00,0x0F,0xFC,0xE0,0x03,0x0F,0x7C,0xF0,0xC3,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x3C,0xF0,0xC3,0x0F,0x3C,0x70,0xC3,0x07,0x1C,0x78,0xE0,0x87,0x00,0x00,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x00,0x00,0xE1,0x06,0x0E,0x38,0xF0,0xC3,0x0E,0x1C,0x70,0xC3,0x8F,0x1C,0x70,
							 | 
						|||
| 
								 | 
							
								    0xE1,0x87,0x1E,0x38,0xE1,0x87,0x0E,0x38,0x70,0x03,0x0F,0x3C,0xB0,0xB3,0xB7,0xB2,
							 | 
						|||
| 
								 | 
							
								    0x66,0x67,0x67,0x20,0x21,0x3F,0x80,0x80,0xFF,0xFF,0x00,0x1F,0xFF,0x00,0x00,0xFF,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0xFF,0xFF,0x00,0xFF,0xFF,0x00,0x00,0xFF,0x00,0x00,0xFF,0x00,0x00,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x00,0x00,0xFF,0x00,0x00,0xFC,0xF8,0x01,0x87,0x1E,0x38,0xE1,0xC7,0x0E,0x38,
							 | 
						|||
| 
								 | 
							
								    0xF1,0xC3,0x8E,0x9C,0xD0,0xDB,0xD9,0xD8,0xD9,0xD9,0xD9,0xD9,0xD9,0xD9,0xD9,0xD9,
							 | 
						|||
| 
								 | 
							
								    0xCC,0x66,0x66,0x63,0x33,0x33,0x99,0x99,0xCC,0xCD,0x64,0x20,0x3F,0x00,0x80,0xFF,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0xFF,0xFF,0x00,0x7F,0xFF,0x00,0x00,0xFF,0x00,0x00,0xFF,0x00,0x00,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x00,0x00,0xFF,0x00,0x00,0xFF,0xFF,0x00,0x01,0x7F,0x60,0x60,0x61,0x67,0x64,
							 | 
						|||
| 
								 | 
							
								    0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,
							 | 
						|||
| 
								 | 
							
								    0x0C,0xCC,0xC6,0x66,0x33,0x33,0x99,0x99,0xCC,0xCC,0x66,0x62,0x33,0x19,0x19,0x4C,
							 | 
						|||
| 
								 | 
							
								    0x6C,0x66,0x63,0x67,0x60,0x60,0x3F,0x00,0x00,0xFF,0x00,0x00,0xFF,0x00,0x00,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x80,0x80,0x9F,0x90,0x90,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
							 | 
						|||
| 
								 | 
							
								    0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
							 | 
						|||
| 
								 | 
							
								    0x93,0x9C,0x8C,0x86,0x86,0x93,0x93,0x91,0x90,0x90,0x92,0x93,0x93,0x93,0x93,0x93,
							 | 
						|||
| 
								 | 
							
								    0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x9B,0x9B,0x9B,0x98,0x98,0x9F,0x80,0x80,0xFF//"C:\Users\fortest\Desktop\blackwhite.bmp",0
							 | 
						|||
| 
								 | 
							
								};
							 | 
						|||
| 
								 | 
							
								const unsigned char pic2[]=
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    0xFF,0xF1,0x01,0x01,0x03,0x03,0x03,0x03,0x07,0x87,0x87,0xC7,0xC7,0xEF,0xEF,0xEF,
							 | 
						|||
| 
								 | 
							
								    0xEF,0xEF,0xEF,0xEF,0xC7,0xC7,0x87,0x87,0x03,0x03,0x03,0x03,0x01,0x01,0x81,0xF1,
							 | 
						|||
| 
								 | 
							
								    0xFD,0x81,0x01,0x01,0x03,0x03,0x03,0x03,0x87,0x87,0xC7,0xC7,0xE7,0xEF,0xEF,0xEF,
							 | 
						|||
| 
								 | 
							
								    0xEF,0xEF,0xEF,0xC7,0xC7,0xC7,0x87,0x03,0x03,0x03,0x03,0x01,0x01,0x01,0xE1,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xF0,0x00,0xE0,0xFC,0xFE,0x7F,0x0F,0x07,0x03,0x03,0xC1,0xE1,0xE0,
							 | 
						|||
| 
								 | 
							
								    0xE0,0xE0,0xE1,0xC1,0x03,0x03,0x07,0x1F,0xFF,0xFE,0xF8,0xE0,0x00,0x78,0x3F,0x1F,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x3F,0x78,0x00,0xE0,0xF8,0xFE,0xFF,0x1F,0x07,0x03,0x03,0xC1,0xE1,0xE0,0xE0,
							 | 
						|||
| 
								 | 
							
								    0xE0,0xE1,0xC1,0x01,0x03,0x07,0x0F,0x7F,0xFE,0xFC,0xF0,0x00,0xE0,0xFE,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0x0F,0x00,0x0F,0x3F,0xFF,0xFC,0xE0,0xC0,0x80,0x80,0x07,0x0F,0x0F,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x0F,0x0F,0x07,0x80,0xC0,0xE0,0xF0,0xFF,0x7F,0x3F,0x07,0x00,0x1C,0xF8,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF0,0xF8,0x1C,0x00,0x0F,0x3F,0x7F,0xFF,0xF0,0xE0,0xC0,0x80,0x03,0x07,0x0F,0x0F,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x0F,0x07,0x80,0x80,0xC0,0xF0,0xFC,0xFF,0x3F,0x0F,0x00,0x1F,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x0F,0x00,0x00,0x80,0x80,0x80,0x80,0xC1,0xC3,0xC3,0xC7,0xE7,0x6F,0x2F,0x0F,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x0F,0x2F,0x6F,0xE7,0xC7,0xC3,0xC1,0xC1,0x80,0x80,0x80,0x80,0x00,0x03,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x01,0x80,0x80,0x80,0x80,0x80,0xC1,0xC1,0xC3,0xC7,0xE7,0x67,0x2F,0x0F,0x0F,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x2F,0x6F,0xE7,0xC7,0xC3,0xC3,0xC1,0x80,0x80,0x80,0x80,0x00,0x00,0x1F,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFE,0xF0,0x01,0x01,0x01,0x01,0x03,0x03,0x83,0xC3,0xC7,0xE7,0xE7,0xE6,0xF4,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF0,0xE8,0xE4,0xE6,0xE7,0xC3,0xC3,0x83,0x03,0x03,0x01,0x01,0x01,0x01,0xC0,0xFC,
							 | 
						|||
| 
								 | 
							
								    0xF8,0x80,0x01,0x01,0x01,0x01,0x03,0x83,0xC3,0xC3,0xE7,0xE7,0xE6,0xF4,0xF0,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xF4,0xE6,0xE7,0xE7,0xC3,0x83,0x03,0x03,0x01,0x01,0x01,0x01,0x80,0xF8,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFE,0xE0,0x00,0xF8,0xFC,0xFF,0x3F,0x0F,0x03,0x01,0x81,0xE0,0xF0,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF0,0xF0,0xE0,0xC1,0x01,0x03,0x07,0x1F,0xFF,0xFE,0xF8,0xC0,0x40,0x3C,0x1F,0x0F,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x3F,0x78,0x00,0xF0,0xFC,0xFF,0x3F,0x0F,0x03,0x01,0x81,0xE0,0xF0,0xF0,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF0,0xE0,0xC0,0x01,0x03,0x07,0x0F,0xFF,0xFE,0xFC,0xE0,0x00,0xF8,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0x7F,0x03,0x00,0x0F,0x3F,0xFF,0xFC,0xF0,0xC0,0xC0,0x81,0x87,0x07,0x0F,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x07,0x87,0x83,0x80,0xC0,0xE0,0xF8,0xFF,0x7F,0x1F,0x03,0x02,0x3E,0xFC,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xFC,0x0E,0x00,0x0F,0x3F,0x7F,0xFE,0xF0,0xE0,0xC0,0x80,0x83,0x07,0x0F,0x0F,
							 | 
						|||
| 
								 | 
							
								    0x07,0x87,0x83,0x80,0xC0,0xE0,0xF8,0xFF,0x7F,0x1F,0x07,0x00,0x0F,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x87,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC1,0xE1,0xE3,0xE7,0xE7,0xE7,0xF7,0xF7,
							 | 
						|||
| 
								 | 
							
								    0xF7,0xF7,0xF7,0xE7,0xE7,0xE3,0xE3,0xC1,0xC0,0xC0,0xC0,0x80,0x80,0x80,0x83,0xBF,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x80,0x80,0x80,0x80,0xC0,0xC0,0xC0,0xC1,0xE3,0xE3,0xE7,0xE7,0xF7,0xF7,0xF7,
							 | 
						|||
| 
								 | 
							
								    0xF7,0xE7,0xE7,0xE7,0xE3,0xE3,0xC1,0xC0,0xC0,0xC0,0x80,0x80,0x80,0x81,0x1F,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC//"C:\Users\fortest\Desktop\pic2.bmp",0
							 | 
						|||
| 
								 | 
							
								};
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								const unsigned char pic3[]=
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x3F,0x1F,0x0F,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x07,0x03,0x03,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,
							 | 
						|||
| 
								 | 
							
								    0x01,0x01,0x03,0x03,0x07,0x0F,0x0F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x1F,
							 | 
						|||
| 
								 | 
							
								    0x03,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,0x01,
							 | 
						|||
| 
								 | 
							
								    0x07,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,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,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x86,0x00,0x02,0xE1,
							 | 
						|||
| 
								 | 
							
								    0xF0,0xF8,0xF8,0xFC,0xFC,0xFC,0xF8,0xF8,0xF0,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0xF0,0xF8,0xFC,0xFC,0xFC,0xFC,0xFC,0xFC,0xF8,0xF0,0x40,0x02,0x00,0x66,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xF1,0xC0,0x80,0x81,0x83,0x87,0x87,0x87,0x83,0x03,0x01,0x01,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x40,0xF8,0x00,0x7C,0x60,0x00,0x00,0x01,0x01,0x03,0x03,0x03,0x03,0x03,0x03,0x01,
							 | 
						|||
| 
								 | 
							
								    0x00,0x80,0xF0,0xFC,0xFF,0xFF,0x7F,0x7F,0x7F,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x83,0x01,0x00,0x00,0x00,0x01,0x03,0x07,0x07,0x0F,0x0F,0x0F,0x1F,0x1F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x3B,0x70,0x60,0xC0,0xC0,0xC0,0x80,0x80,0xC0,0x80,0xC0,0xC0,0xC0,0xE0,0x60,0x70,
							 | 
						|||
| 
								 | 
							
								    0x30,0x3F,0x1F,0x1E,0x1E,0x0E,0x0F,0x8F,0x87,0x87,0x83,0x80,0x80,0x80,0x80,0x80,
							 | 
						|||
| 
								 | 
							
								    0x82,0xC7,0xFF,0xFF,0xFF,0x7F,0x3F,0x3F,0x7F,0x7F,0xFF,0x7F,0x7F,0x7F,0x3F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x3F,0x1E,0x1E,0x1E,0x1C,0x0C,0x08,0x88,0x80,0x80,0xC0,0xC0,0xC1,0xE1,0xC1,0xC1,
							 | 
						|||
| 
								 | 
							
								    0xC1,0x80,0x80,0x00,0x08,0x0C,0x0C,0x0E,0x1E,0x1E,0x1F,0x1F,0x3F,0x3F,0x3F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x7F,0x7F,0x7F,0x7F,0x7F,0x3F,0x3F,0x7F,0xFF,0xFF,0xFF,0xFC,0xC0,0x80,0x80,0x80,
							 | 
						|||
| 
								 | 
							
								    0x80,0xC0,0xE0,0xF0,0xF8,0xFC,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0xFC,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFC,0xF8,0xF8,0xF8,0xF0,0xF0,0xE0,0xE0,0xC0,0xC0,0x80,0x80,0x80,0x8F,0xFF//"C:\Users\fortest\Desktop\64K58PICskB_1024.bmp",0
							 | 
						|||
| 
								 | 
							
								};
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								const unsigned char pic4[]=
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,
							 | 
						|||
| 
								 | 
							
								    0x3F,0xFF,0xFF,0xFF,0x7F,0x1F,0x0F,0x03,0x7F,0x7F,0x3F,0x1F,0x0F,0x07,0x03,0xB9,
							 | 
						|||
| 
								 | 
							
								    0x3F,0x3F,0x1F,0x0F,0x0F,0x07,0xE7,0x7B,0x7F,0x7F,0x3F,0x3F,0x3F,0x3F,0xDF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x03,0x07,0x0F,0x1F,0xBF,0xC3,0x80,
							 | 
						|||
| 
								 | 
							
								    0x80,0x40,0x7B,0x7D,0xF8,0x30,0x08,0x1C,0x9F,0xFF,0xCE,0xC4,0x06,0x6E,0xFF,0xEF,
							 | 
						|||
| 
								 | 
							
								    0x47,0x40,0xE6,0xFE,0xCF,0x0F,0x8E,0x88,0xF8,0x38,0x3C,0x3C,0xC0,0xC3,0xC3,0xC3,
							 | 
						|||
| 
								 | 
							
								    0xC3,0x43,0x23,0x73,0x7B,0x7B,0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xE1,0x03,0x07,0x07,0x04,0xF8,0xF8,0xF8,0x77,0x87,0x87,
							 | 
						|||
| 
								 | 
							
								    0xC7,0xB8,0x38,0x18,0xE6,0xE7,0xE7,0x1F,0x18,0x39,0xC5,0x8E,0xEC,0xE4,0x46,0xEE,
							 | 
						|||
| 
								 | 
							
								    0x46,0xC4,0xEE,0x8F,0xC0,0xD8,0x3D,0x1B,0xE3,0xE2,0xFC,0x1E,0x1E,0xE1,0xE3,0xE3,
							 | 
						|||
| 
								 | 
							
								    0x1B,0x3C,0x3C,0xF8,0x98,0x08,0x08,0x0C,0x1E,0x1E,0x3F,0x7F,0x7F,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFC,0xF1,0xE1,0x81,0x01,0x86,0xCE,0xFE,0x9F,0x0C,0x00,0xB8,0xBD,0x1B,
							 | 
						|||
| 
								 | 
							
								    0x91,0xF9,0xBB,0x17,0x83,0xB0,0xFC,0xAD,0x0B,0xC7,0xE1,0xF9,0x3C,0x19,0x8C,0xCE,
							 | 
						|||
| 
								 | 
							
								    0x8C,0x1C,0x3C,0xF9,0xE1,0xD7,0x0B,0xAF,0xBC,0xF4,0xA3,0x13,0xBF,0xF8,0x88,0x8F,
							 | 
						|||
| 
								 | 
							
								    0xFE,0xEE,0xC2,0x47,0xE7,0xFF,0xE7,0xC2,0x80,0x06,0x07,0x0F,0x1F,0x7F,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFE,0x7C,0xF8,0x70,0x60,0x40,0x43,0x67,0xFF,0xF7,0xE0,0x43,0x33,0x7F,0x71,
							 | 
						|||
| 
								 | 
							
								    0x91,0x1F,0xDD,0xE8,0xC4,0x25,0x3F,0xB4,0xD8,0xE2,0x87,0xDF,0x3C,0x98,0x39,0x7B,
							 | 
						|||
| 
								 | 
							
								    0x39,0xB8,0x3C,0xCF,0x97,0xE2,0xC8,0xB6,0x3F,0x27,0xC5,0xE8,0xFD,0x9F,0x88,0xD8,
							 | 
						|||
| 
								 | 
							
								    0xBD,0x1D,0x08,0x18,0xF8,0x7F,0x79,0x61,0x80,0xC1,0x83,0x8F,0x3F,0x7F,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFE,0xFE,0xFC,0x7C,0x38,0x38,0x10,0x00,0x19,0x1F,0x1C,0x3C,0xFC,0xC7,
							 | 
						|||
| 
								 | 
							
								    0xC7,0xC7,0xF8,0x38,0x38,0x07,0xC7,0xC8,0xDC,0x1C,0x13,0xB1,0x7F,0x23,0x22,0x77,
							 | 
						|||
| 
								 | 
							
								    0x62,0x23,0x37,0x71,0xB3,0x9F,0x9C,0xD8,0xE7,0xE7,0xE7,0x1C,0x1C,0x1C,0xE3,0xE1,
							 | 
						|||
| 
								 | 
							
								    0xE1,0xF2,0x1F,0x0F,0x1F,0x10,0xE0,0xE0,0xC0,0x87,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xDE,0xCE,0xC6,0xC2,0xC3,0xC3,
							 | 
						|||
| 
								 | 
							
								    0xC3,0xC3,0x43,0x3C,0x1C,0x1E,0x1F,0x19,0x31,0xF0,0x7B,0x7F,0x33,0x02,0x62,0xF3,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x73,0x20,0x21,0x73,0xFB,0xF9,0x38,0x10,0x08,0x1F,0x9F,0xDF,0x82,0x01,0x01,
							 | 
						|||
| 
								 | 
							
								    0xC1,0xFD,0xFC,0xF8,0xF0,0xC0,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFD,0xFC,0xFC,0xFC,0xFC,0xFE,0xFE,0xDE,0xE7,0xE0,0xF0,0xF0,0xF8,0xFC,0xFC,0xBF,
							 | 
						|||
| 
								 | 
							
								    0xC0,0xE0,0xF0,0xF8,0xFC,0xFE,0xFE,0xC0,0xF0,0xF8,0xFE,0xFF,0xFF,0xFF,0xFE,0xFC,
							 | 
						|||
| 
								 | 
							
								    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF//"C:\Users\fortest\Desktop\center.bmp",0
							 | 
						|||
| 
								 | 
							
								};
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								const unsigned char pic5[]=
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x80,0xC0,0x61,0x27,0x1C,0x10,0x03,0x06,0x0C,0x18,0x0C,0x04,0x06,
							 | 
						|||
| 
								 | 
							
								    0xE2,0xA1,0x11,0x19,0x0F,0x82,0xF0,0x3C,0x0E,0xC2,0xE3,0x9E,0x80,0x80,0xFE,0x7F,
							 | 
						|||
| 
								 | 
							
								    0x01,0x00,0x60,0x7B,0x3E,0x31,0x97,0x9C,0xC0,0x80,0x80,0x80,0x80,0x86,0x83,0x86,
							 | 
						|||
| 
								 | 
							
								    0x46,0x3C,0xD8,0x60,0x10,0x09,0x09,0x06,0x86,0x4D,0x38,0x00,0x03,0xF4,0x14,0x0A,
							 | 
						|||
| 
								 | 
							
								    0x09,0x08,0x18,0xF0,0x00,0x00,0x87,0xF8,0x00,0x00,0x30,0x3F,0x20,0x20,0x20,0x20,
							 | 
						|||
| 
								 | 
							
								    0x20,0x20,0x60,0xC0,0xC1,0x01,0x01,0x01,0x01,0x01,0xF0,0x1F,0x03,0x00,0x80,0xF0,
							 | 
						|||
| 
								 | 
							
								    0x3F,0x00,0x00,0x80,0xC0,0x60,0x30,0x18,0x08,0x07,0x07,0x80,0xC0,0xC1,0x81,0x83,
							 | 
						|||
| 
								 | 
							
								    0x03,0x01,0x00,0x18,0x3C,0x24,0x66,0x43,0x41,0x40,0x78,0x7F,0x07,0x00,0x30,0x3C,
							 | 
						|||
| 
								 | 
							
								    0x00,0x1E,0x33,0x61,0x60,0x20,0x30,0x18,0x0C,0x83,0xC3,0x43,0x66,0x66,0x64,0xCC,
							 | 
						|||
| 
								 | 
							
								    0x88,0x18,0x59,0xF9,0x81,0x81,0x81,0xF0,0x38,0x08,0x89,0x8D,0x4C,0x64,0x24,0x34,
							 | 
						|||
| 
								 | 
							
								    0x16,0x92,0x8A,0xCB,0x09,0x0D,0x04,0x04,0x24,0x64,0xE5,0xA5,0x25,0x25,0x25,0x24,
							 | 
						|||
| 
								 | 
							
								    0x24,0xE7,0x01,0x00,0x00,0x00,0x44,0xEF,0x29,0x48,0xD0,0x90,0x20,0x21,0x23,0x1C,
							 | 
						|||
| 
								 | 
							
								    0x90,0x80,0x40,0x43,0x42,0x99,0xBD,0x26,0x22,0x62,0x46,0x44,0x44,0x64,0x2C,0x34,
							 | 
						|||
| 
								 | 
							
								    0x14,0x14,0x16,0x13,0x11,0x30,0x20,0x60,0xC0,0x00,0x01,0x03,0x02,0x03,0x01,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x1F,0x30,0x20,0x20,0x30,0x10,0x18,0x06,0x83,0xC0,0xE0,0x61,0x61,
							 | 
						|||
| 
								 | 
							
								    0x23,0x63,0x66,0xE6,0xC6,0x04,0x0C,0xFC,0xCC,0x80,0xC0,0xC0,0xFC,0x3E,0x06,0x82,
							 | 
						|||
| 
								 | 
							
								    0x03,0x03,0xCE,0x7C,0x00,0x00,0x00,0xFC,0xCF,0x01,0x00,0x00,0x00,0x00,0x00,0xE0,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x40,0x60,0x20,0xB1,0xD9,0xC9,0x84,0x06,0x13,0x39,0x2C,0xE4,0x06,0x83,0x81,
							 | 
						|||
| 
								 | 
							
								    0x81,0x80,0x80,0x87,0x9C,0x70,0xC0,0x80,0x00,0x00,0x00,0x01,0x03,0x0E,0xF8,0x00,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x71,0xC0,0x80,0x00,0x00,0x80,0x61,0x0C,0x70,0x0C,0x03,0x00,0x00,0xFC,0x0C,
							 | 
						|||
| 
								 | 
							
								    0x18,0x33,0x26,0x4C,0x98,0x10,0x20,0x7D,0xE3,0xC0,0xC0,0x44,0x3C,0x0C,0x08,0x08,
							 | 
						|||
| 
								 | 
							
								    0x18,0x18,0x10,0x10,0x98,0x98,0x88,0x8C,0x07,0x00,0x80,0xF0,0x1C,0x0E,0x06,0x03,
							 | 
						|||
| 
								 | 
							
								    0x03,0x03,0x03,0x06,0xFE,0xF8,0x00,0x00,0x00,0xF8,0xFF,0x03,0x01,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x80,0xF0,0x9F,0x80,0xC0,0x40,0x61,0x31,0x99,0x18,0x0C,0x06,0x33,0x39,
							 | 
						|||
| 
								 | 
							
								    0xCE,0x6F,0x25,0x24,0x24,0xE4,0xE4,0x06,0x03,0x3A,0xE8,0x88,0x08,0x04,0x04,0x08,
							 | 
						|||
| 
								 | 
							
								    0x90,0xE2,0x03,0x05,0xC4,0x88,0x88,0x11,0x11,0x21,0x21,0x3D,0x06,0x03,0x01,0x01,
							 | 
						|||
| 
								 | 
							
								    0x80,0xC0,0xC0,0x60,0x39,0x0F,0x80,0x81,0xC3,0x62,0x62,0x62,0x22,0x23,0x61,0xC0,
							 | 
						|||
| 
								 | 
							
								    0x80,0x00,0x00,0x01,0x01,0x01,0x00,0x00,0x07,0x18,0x30,0x30,0x30,0x18,0x07,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x80,0x9F,0x90,0x98,0x0E,0x06,0x0C,0x19,0x33,0x22,0x46,0xC4,0x8C,
							 | 
						|||
| 
								 | 
							
								    0x98,0x18,0x0C,0x03,0x30,0x38,0x2C,0x27,0x20,0x30,0xBF,0x03,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x30,0x38,0x3C,0x37,0x33,0x10,0x10,0x90,0x18,0x19,0x0F,0xCC,0xC0,0x60,0x20,0x20,
							 | 
						|||
| 
								 | 
							
								    0x30,0x30,0x61,0x41,0x81,0x09,0x1C,0x16,0x32,0x21,0x61,0x43,0x43,0xC6,0x86,0x84,
							 | 
						|||
| 
								 | 
							
								    0x6E,0xC3,0x00,0x00,0x00,0x3F,0xE0,0x80,0x00,0x00,0x00,0x03,0x0E,0x78,0xC0,0x0F,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x20,0x20,0x30,0x1F,0x00,0x7D,0xC3,0x80,0x00,0x00,0x80,0xC0,0x7C,0x0C,0x08,
							 | 
						|||
| 
								 | 
							
								    0x19,0x13,0xF2,0x26,0x06,0x03,0x01,0x01,0xE0,0xF0,0x30,0x10,0x98,0x88,0x8C,0x06,
							 | 
						|||
| 
								 | 
							
								    0x03,0x00,0x00,0x1C,0x66,0xC2,0x82,0x06,0x04,0x08,0x30,0x60,0x20,0x30,0x90,0x90,
							 | 
						|||
| 
								 | 
							
								    0x98,0x48,0x4F,0xC1,0x80,0x00,0x31,0x6E,0x40,0x40,0x40,0x80,0x80,0x80,0x00,0x0F,
							 | 
						|||
| 
								 | 
							
								    0x3F,0x60,0xC0,0xC0,0x60,0x7F,0x03,0x01,0x01,0x01,0x01,0x07,0x1C,0x30,0x40,0xC0,
							 | 
						|||
| 
								 | 
							
								    0xC0,0x7F,0x3F,0x01,0x01,0x01,0x61,0xFF,0x03,0x00,0x00,0x01,0x03,0x0E,0x78,0xE0,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0xE0,0xFC,0x0F,0x03,0x00,0x00,0xFE,0x0C,0x8C,0xF8,0x30,0x00,0x00,0x01,
							 | 
						|||
| 
								 | 
							
								    0x03,0x81,0xC0,0x60,0x30,0x30,0x11,0x13,0x26,0xE6,0x8C,0x04,0x04,0x07,0xF3,0x18,
							 | 
						|||
| 
								 | 
							
								    0x08,0x08,0x18,0x30,0xE0,0x80,0x00,0x80,0xC1,0x61,0x61,0x41,0xC0,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x0F,0x18,0x30,0x20,0x60,0x30,0x3D,0x1F,0x00,0x7F,0xC1,0x01,0x01,0x01,
							 | 
						|||
| 
								 | 
							
								    0x03,0x04,0x38,0xE0,0xC0,0x38,0x0F,0x03,0xE0,0x30,0x18,0x18,0x23,0x63,0x42,0x82,
							 | 
						|||
| 
								 | 
							
								    0x84,0x8C,0x78,0x00,0x1F,0x30,0x20,0xE0,0xE2,0xBE,0x86,0xFC,0xE0,0x01,0x71,0xF3,
							 | 
						|||
| 
								 | 
							
								    0x22,0x26,0x4C,0xC8,0x90,0x30,0x10,0x18,0x0C,0x04,0x86,0x86,0x82,0x82,0x83,0xC2,
							 | 
						|||
| 
								 | 
							
								    0x62,0x7E,0x1C,0x00,0x00,0x00,0x00,0x0F,0x38,0xE0,0xC0,0x80,0x80,0x00,0x80,0x81,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x30,0x00,0x03,0x06,0x04,0x04,0x06,0x03,0x00,0x0F,0x1C,0x30,0x30,0x20,0x60,
							 | 
						|||
| 
								 | 
							
								    0xC3,0x81,0x00,0x30,0x30,0x70,0x58,0x4C,0xC6,0x87,0x81,0x80,0x80,0x80,0x83,0x8E,
							 | 
						|||
| 
								 | 
							
								    0xB8,0xE0,0x80,0x00,0x00,0x3F,0x30,0xB3,0x9F,0x90,0xC0,0x80,0x98,0x3F,0x20,0xC0,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x80,0xC0,0xCF,0x99,0xB1,0x61,0xC3,0x82,0x04,0x08,0x30,0x61,0xC2,0xE6,
							 | 
						|||
| 
								 | 
							
								    0x3C,0x0C,0x00,0x00,0xE0,0x70,0x20,0x61,0x43,0x43,0xC3,0xC3,0xC2,0xC6,0xC4,0x7C,
							 | 
						|||
| 
								 | 
							
								    0x30,0x00,0x00,0x06,0x0B,0x11,0x11,0x10,0x10,0x10,0x10,0x10,0x88,0x58,0x40,0x01,
							 | 
						|||
| 
								 | 
							
								    0x79,0x89,0x09,0x12,0x1C,0x01,0x02,0x04,0x08,0x31,0x63,0xC7,0x0D,0x19,0x70,0xC0,
							 | 
						|||
| 
								 | 
							
								    0x80,0xE0,0x70,0x18,0x18,0x0C,0x0C,0x04,0x04,0x0C,0x99,0xF1,0x01,0x01,0x01,0x01,
							 | 
						|||
| 
								 | 
							
								    0xFC,0x8E,0x02,0x03,0x03,0x06,0x0E,0x1C,0xF0,0x80,0x00,0x80,0xE0,0x30,0x30,0x30,
							 | 
						|||
| 
								 | 
							
								    0x20,0x41,0x83,0x06,0x0C,0x18,0x30,0x60,0x5C,0xBC,0x2C,0x4C,0x8D,0x8D,0x0D,0x8D,
							 | 
						|||
| 
								 | 
							
								    0x85,0xC4,0x44,0x4C,0x58,0x50,0xA0,0x21,0x43,0x64,0xBC,0xB0,0x80,0x01,0x01,0xC0,
							 | 
						|||
| 
								 | 
							
								    0xC0,0x40,0x47,0x9D,0xB0,0x60,0x81,0x03,0x06,0x0D,0x33,0x66,0x3C,0x18,0x01,0x81,
							 | 
						|||
| 
								 | 
							
								    0xC0,0x60,0x2C,0x2F,0xE8,0x08,0x08,0x08,0xE8,0xA8,0x48,0xC0,0x08,0x0C,0xE6,0x22,
							 | 
						|||
| 
								 | 
							
								    0x21,0x31,0x11,0x1A,0x0E,0x00,0x00,0x00,0x38,0x46,0x83,0x81,0x00,0x00,0x80,0xE0,
							 | 
						|||
| 
								 | 
							
								    0x38,0x19,0x31,0x21,0x43,0xC2,0x86,0x84,0x98,0xF0,0x00,0x00,0xE3,0x3E,0x00,0xC0,
							 | 
						|||
| 
								 | 
							
								    0xC0,0x80,0x00,0x10,0x30,0x38,0x58,0x4C,0xC6,0x87,0x83,0x81,0x80,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x01,0x07,0x3C,0xE0,0x80,0x00,0x00,0x00,0x3F,0x21,0x20,0x33,0x3F,0x90,0x80,0x00//"C:\Users\fortest\Desktop\23987259200809112241263643115724376_003_640.bmp",0
							 | 
						|||
| 
								 | 
							
								};
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								const unsigned char pic6[]=
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,
							 | 
						|||
| 
								 | 
							
								    0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x07,0x03,0x03,0x01,0x01,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,
							 | 
						|||
| 
								 | 
							
								    0x3F,0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x01,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF0,0xF8,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF0,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x3F,0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x1F,0x0F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,
							 | 
						|||
| 
								 | 
							
								    0xF8,0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x80,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x0F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,0xFC,
							 | 
						|||
| 
								 | 
							
								    0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,
							 | 
						|||
| 
								 | 
							
								    0x1F,0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,
							 | 
						|||
| 
								 | 
							
								    0xFC,0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
							 | 
						|||
| 
								 | 
							
								    0x00,0x00,0x00,0x00,0x80,0x80,0xC0,0xC0,0xE0,0xE0,0xF0,0xF0,0xF8,0xF8,0xFC,0xFC,
							 | 
						|||
| 
								 | 
							
								    0xFE,0xFE,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0x7F,0x3F,0x3F,0x1F,0x1F,0x0F,
							 | 
						|||
| 
								 | 
							
								    0x0F,0x07,0x07,0x03,0x03,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00//C:\Users\fortest\Desktop\t015385bc585c6df988.bmp0
							 | 
						|||
| 
								 | 
							
								};
							 | 
						|||
| 
								 | 
							
								void delay_sometime(void)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    uint32_t loop;
							 | 
						|||
| 
								 | 
							
								    loop = 0;
							 | 
						|||
| 
								 | 
							
								    while (loop++ < 1000000) {
							 | 
						|||
| 
								 | 
							
								        __asm volatile ("nop\n");
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								int i2c_oled_write_command(char cmd)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    uint8_t data[2] ;
							 | 
						|||
| 
								 | 
							
								    int ret=0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    data[0] = 0x00;
							 | 
						|||
| 
								 | 
							
								    data[1] = cmd;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    ret = iot_i2c_write(g_port, I2C_OLED_ADD, (char *)data, 2 );
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    return ret;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								int i2c_oled_write_data(char data)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    uint8_t dat[2] ;
							 | 
						|||
| 
								 | 
							
								    int ret=0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    dat[0] = 0x40;
							 | 
						|||
| 
								 | 
							
								    dat[1] = data;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    ret = iot_i2c_write(g_port, I2C_OLED_ADD, (char *)dat, 2 );
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    return ret;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void OLED_Set_Pos(unsigned int x, unsigned char y)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xb0+y);
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(((x&0xf0)>>4)|0x10);
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command((x&0x0f)|0x01);
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								unsigned char g_buf[100*1024];
							 | 
						|||
| 
								 | 
							
								void i2c_oled_draw2(unsigned int x_st, char y_st, unsigned int x_end, char y_end,
							 | 
						|||
| 
								 | 
							
								                  const unsigned char pic[])
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								   unsigned char x, y=0;
							 | 
						|||
| 
								 | 
							
								   unsigned int j=0;
							 | 
						|||
| 
								 | 
							
								   int len = 0;
							 | 
						|||
| 
								 | 
							
								   int ret = 0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   if (y_end%8==0) {
							 | 
						|||
| 
								 | 
							
								       y=y_end/8;
							 | 
						|||
| 
								 | 
							
								   } else {
							 | 
						|||
| 
								 | 
							
								       y=y_end/8+1;
							 | 
						|||
| 
								 | 
							
								   }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								   for (y=y_st; y<=y_end; y++) {
							 | 
						|||
| 
								 | 
							
								       g_buf[len ++] = 0xb0+y;
							 | 
						|||
| 
								 | 
							
								       g_buf[len ++] = ((x&0xf0)>>4)|0x10 ;
							 | 
						|||
| 
								 | 
							
								       g_buf[len ++] = (x&0x0f)|0x01;
							 | 
						|||
| 
								 | 
							
								       //OLED_Set_Pos(x_st,y);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								       for (x=x_st; x<x_end; x++) {
							 | 
						|||
| 
								 | 
							
								            g_buf[len ++] = 0x40;
							 | 
						|||
| 
								 | 
							
								            g_buf[len ++] = pic[j++];
							 | 
						|||
| 
								 | 
							
								           //i2c_oled_write_data(pic[j++]);
							 | 
						|||
| 
								 | 
							
								       }
							 | 
						|||
| 
								 | 
							
								       ret = iot_i2c_write(g_port, I2C_OLED_ADD, (char *)g_buf, len );
							 | 
						|||
| 
								 | 
							
								       iot_printf("len = %d, ret = %d\r\n", len, ret);
							 | 
						|||
| 
								 | 
							
								   }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void i2c_oled_draw(unsigned int x_st, char y_st, unsigned int x_end, char y_end,
							 | 
						|||
| 
								 | 
							
								                   const unsigned char pic[])
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    unsigned char x, y=0;
							 | 
						|||
| 
								 | 
							
								    unsigned int j=0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    if (y_end%8==0) {
							 | 
						|||
| 
								 | 
							
								        y=y_end/8;
							 | 
						|||
| 
								 | 
							
								    } else {
							 | 
						|||
| 
								 | 
							
								        y=y_end/8+1;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    for (y=y_st; y<=y_end; y++) {
							 | 
						|||
| 
								 | 
							
								        OLED_Set_Pos(x_st,y);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        for (x=x_st; x<x_end; x++) {
							 | 
						|||
| 
								 | 
							
								            i2c_oled_write_data(pic[j++]);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void OLED_clear_screen(void)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    unsigned char y=0;
							 | 
						|||
| 
								 | 
							
								    unsigned int  x=0;
							 | 
						|||
| 
								 | 
							
								    for (y=0;y<8;y++) {
							 | 
						|||
| 
								 | 
							
								        i2c_oled_write_command(0xb0+y);
							 | 
						|||
| 
								 | 
							
								        i2c_oled_write_command(0x01);
							 | 
						|||
| 
								 | 
							
								        i2c_oled_write_command(0x10);
							 | 
						|||
| 
								 | 
							
								        for (x=0;x<OLED_X_WIDTH;x++) {
							 | 
						|||
| 
								 | 
							
								            i2c_oled_write_data(0x00);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								unsigned char i2c_oled_read(void)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    char buf[2];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    if (iot_i2c_read(g_port, I2C_OLED_ADD, buf, 1)) {
							 | 
						|||
| 
								 | 
							
								        iot_printf("read failed.\n");
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    return buf[0];
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void i2c_oled_init(void)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    delay_sometime();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xae);//--turn off oled panel
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x00);//---set low column address
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x10);//---set high column address
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x40);//--set start line address  Set Mapping RAM Display Start Line (0x00~0x3F)
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x81);//--set contrast control register
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xCF); // Set SEG Output Current Brightness
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xa1);//--Set SEG/Column Mapping     0xa0???? 0xa1??
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xc8);//Set COM/Row Scan Direction   0xc0???? 0xc8??
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xa6);//--set normal display
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xa8);//--set multiplex ratio(1 to 64)
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x3f);//--1/64 duty
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xd3);//-set display offset Shift Mapping RAM Counter (0x00~0x3F)
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x00);//-not offset
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xd5);//--set display clock divide ratio/oscillator frequency
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x80);//--set divide ratio, Set Clock as 100 Frames/Sec
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xd9);//--set pre-charge period
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xf1);//Set Pre-Charge as 15 Clocks & Discharge as 1 Clock
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xda);//--set com pins hardware configuration
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x12);
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xdb);//--set vcomh
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x40);//Set VCOM Deselect Level
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x20);//-Set Page Addressing Mode (0x00/0x01/0x02)
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x02);//
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x8d);//--set Charge Pump enable/disable
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0x14);//--set(0x10) disable
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xa4);// Disable Entire Display On (0xa4/0xa5)
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xa6);// Disable Inverse Display On (0xa6/a7)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    OLED_Set_Pos(0,0);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    i2c_oled_write_command(0xaf);//--turn on oled panel
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    OLED_clear_screen();
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void register_print_by_addr(uint32_t addr, int num)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    volatile uint32_t *p_addr = (volatile uint32_t *)addr;
							 | 
						|||
| 
								 | 
							
								    iot_printf("base:%08x\r\n", addr);
							 | 
						|||
| 
								 | 
							
								    for (int i = 0; i < num; i++) {
							 | 
						|||
| 
								 | 
							
								        iot_printf("%02x:%08x,", (uint32_t)p_addr & 0xff, *p_addr);
							 | 
						|||
| 
								 | 
							
								        p_addr ++;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    iot_printf("\r\n");
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								#include "gp_timer.h"
							 | 
						|||
| 
								 | 
							
								#include "gpio_hw.h"
							 | 
						|||
| 
								 | 
							
								#include "gpio_mtx.h"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								extern iot_gpio_op_t hw_gpio_api_table;
							 | 
						|||
| 
								 | 
							
								extern void IRAM_ATTR iot_delay_us_cpu_cycle(uint32_t us);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								uint32_t i2c_base[]={I2C_M0_REG_BASEADDR, I2C_M1_REG_BASEADDR,
							 | 
						|||
| 
								 | 
							
								                     I2C_M2_REG_BASEADDR, I2C_M3_REG_BASEADDR};
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void at24c02_test_loop(void)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    int ret ;
							 | 
						|||
| 
								 | 
							
								    char send_buf[9];
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    static uint8_t read_buf[255];
							 | 
						|||
| 
								 | 
							
								    int inc = 0;
							 | 
						|||
| 
								 | 
							
								    int addr = 0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    int pin = 8;
							 | 
						|||
| 
								 | 
							
								    hw_gpio_api_table.gpio_init();
							 | 
						|||
| 
								 | 
							
								    gpio_pin_select(pin, 0);
							 | 
						|||
| 
								 | 
							
								    hw_gpio_api_table.set_gpio_mode(pin, GPIO_OUTPUT);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    hw_gpio_api_table.set_value(pin, 0);
							 | 
						|||
| 
								 | 
							
								    delay_sometime();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    while(1) {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        for(addr = 0; addr < 0xff; addr += 8) {
							 | 
						|||
| 
								 | 
							
								            send_buf[0] = addr;
							 | 
						|||
| 
								 | 
							
								            send_buf[1] = (inc ++) % 0xff;
							 | 
						|||
| 
								 | 
							
								            send_buf[2] = (inc ++) % 0xff;
							 | 
						|||
| 
								 | 
							
								            send_buf[3] = (inc ++) % 0xff;
							 | 
						|||
| 
								 | 
							
								            send_buf[4] = (inc ++) % 0xff;
							 | 
						|||
| 
								 | 
							
								            send_buf[5] = (inc ++) % 0xff;
							 | 
						|||
| 
								 | 
							
								            send_buf[6] = (inc ++) % 0xff;
							 | 
						|||
| 
								 | 
							
								            send_buf[7] = (inc ++) % 0xff;
							 | 
						|||
| 
								 | 
							
								            send_buf[8] = (inc ++) % 0xff;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            ret = iot_i2c_write(g_port,I2C_AT24C02_ADDR,(char *)send_buf, sizeof(send_buf));
							 | 
						|||
| 
								 | 
							
								            if ( ret ) {
							 | 
						|||
| 
								 | 
							
								                iot_printf("write failed ret = %d, times = %d.\n", ret, addr/8);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            hw_gpio_api_table.set_value(pin, 1);
							 | 
						|||
| 
								 | 
							
								            iot_delay_us_cpu_cycle(5000/2);
							 | 
						|||
| 
								 | 
							
								            hw_gpio_api_table.set_value(pin, 0);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        inc ++;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        send_buf[0] = 0;
							 | 
						|||
| 
								 | 
							
								        iot_i2c_write(g_port, I2C_AT24C02_ADDR,(char *)send_buf, 1); //告诉24C02从哪个地址开始读
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        if (iot_i2c_read(g_port, I2C_AT24C02_ADDR, (char *)read_buf, sizeof(read_buf) - 1)) {
							 | 
						|||
| 
								 | 
							
								            iot_printf("read failed.\n");
							 | 
						|||
| 
								 | 
							
								        } else {
							 | 
						|||
| 
								 | 
							
								            for (int i = 0; i < sizeof(read_buf) - 1; i++) {
							 | 
						|||
| 
								 | 
							
								                iot_printf("read[%d]=%02x\r\n", i, read_buf[i] & 0xff);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    // write test
							 | 
						|||
| 
								 | 
							
								    send_buf[0] = 0; // byte addr 从24c02的哪个地址开始写
							 | 
						|||
| 
								 | 
							
								    send_buf[1] = 0x22; //写入的测试数据
							 | 
						|||
| 
								 | 
							
								    send_buf[2] = 0x33; //写入的测试数据
							 | 
						|||
| 
								 | 
							
								    send_buf[3] = 0x44; //写入的测试数据
							 | 
						|||
| 
								 | 
							
								    send_buf[4] = 0x55; //写入的测试数据
							 | 
						|||
| 
								 | 
							
								    send_buf[5] = 0x66; //写入的测试数据
							 | 
						|||
| 
								 | 
							
								    ret = iot_i2c_write(g_port,I2C_AT24C02_ADDR,(char *)send_buf, sizeof(send_buf));
							 | 
						|||
| 
								 | 
							
								    if ( ret ) {
							 | 
						|||
| 
								 | 
							
								        iot_printf("write failed ret = %d.\n", ret);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    //read test
							 | 
						|||
| 
								 | 
							
								    send_buf[0] = 0; // byte addr
							 | 
						|||
| 
								 | 
							
								    delay_sometime();//延时一小会儿,等24c02写入数据
							 | 
						|||
| 
								 | 
							
								    iot_i2c_write(g_port, I2C_AT24C02_ADDR,(char *)send_buf, 1); //告诉24C02从哪个地址开始读
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    if (iot_i2c_read(g_port, I2C_AT24C02_ADDR, send_buf, sizeof(send_buf) - 1)) {
							 | 
						|||
| 
								 | 
							
								        iot_printf("read failed.\n");
							 | 
						|||
| 
								 | 
							
								    } else {
							 | 
						|||
| 
								 | 
							
								        for (int i = 0; i < sizeof(send_buf) - 1; i++) {
							 | 
						|||
| 
								 | 
							
								            iot_printf("read[%d]=%02x\r\n", i, send_buf[i] & 0xff);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    while(0) {
							 | 
						|||
| 
								 | 
							
								        register_print_by_addr(i2c_base[g_port], 0x3c / 4);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        ret = iot_i2c_write(g_port,I2C_AT24C02_ADDR,(char *)send_buf, sizeof(send_buf) );
							 | 
						|||
| 
								 | 
							
								        if ( ret ) {
							 | 
						|||
| 
								 | 
							
								            iot_printf("write failed ret = %d.\n", ret);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void oled_test(void)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								        i2c_oled_draw(32,0,96,7,pic1);
							 | 
						|||
| 
								 | 
							
								        delay_sometime();delay_sometime();delay_sometime();delay_sometime();
							 | 
						|||
| 
								 | 
							
								        i2c_oled_draw(32,0,96,7,pic2);
							 | 
						|||
| 
								 | 
							
								        delay_sometime();delay_sometime();delay_sometime();delay_sometime();
							 | 
						|||
| 
								 | 
							
								        OLED_clear_screen();
							 | 
						|||
| 
								 | 
							
								        i2c_oled_draw(37,0,91,7,pic3);
							 | 
						|||
| 
								 | 
							
								        delay_sometime();delay_sometime();delay_sometime();delay_sometime();
							 | 
						|||
| 
								 | 
							
								        i2c_oled_draw(32,0,96,7,pic4);
							 | 
						|||
| 
								 | 
							
								        delay_sometime();delay_sometime();delay_sometime();delay_sometime();
							 | 
						|||
| 
								 | 
							
								        i2c_oled_draw(0,0,127,7,pic5);
							 | 
						|||
| 
								 | 
							
								        delay_sometime();delay_sometime();delay_sometime();delay_sometime();
							 | 
						|||
| 
								 | 
							
								        i2c_oled_draw(0,0,127,7,pic6);
							 | 
						|||
| 
								 | 
							
								        delay_sometime();delay_sometime();delay_sometime();delay_sometime();
							 | 
						|||
| 
								 | 
							
								        OLED_clear_screen();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();delay_sometime();delay_sometime();delay_sometime();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        register_print_by_addr(i2c_base[g_port], 0x3c / 4);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								        delay_sometime();
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void i2c_cb(uint32_t port, uint32_t mask)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    iot_printf("port=%d, mask=%02x\r\n", port, mask);
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								extern void SHT2x_test_loop(void);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#define MASTER_REQ_READ    0x12
							 | 
						|||
| 
								 | 
							
								#define MASTER_REQ_WRITE   0x34
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								void stm32_slave_test(void)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    uint8_t addr = 0x66;
							 | 
						|||
| 
								 | 
							
								    int ret ;
							 | 
						|||
| 
								 | 
							
								    uint8_t inc = 0;
							 | 
						|||
| 
								 | 
							
								    static uint8_t send_buf[254];
							 | 
						|||
| 
								 | 
							
								    static uint8_t read_buf[254];
							 | 
						|||
| 
								 | 
							
								    uint8_t bTransferRequest = 0;
							 | 
						|||
| 
								 | 
							
								    uint8_t hTxNumData = 0;
							 | 
						|||
| 
								 | 
							
								    uint8_t hRxNumData = 0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    int pin = 8;
							 | 
						|||
| 
								 | 
							
								    hw_gpio_api_table.gpio_init();
							 | 
						|||
| 
								 | 
							
								    gpio_pin_select(pin, 0);
							 | 
						|||
| 
								 | 
							
								    hw_gpio_api_table.set_gpio_mode(pin, GPIO_OUTPUT);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    // rst slave
							 | 
						|||
| 
								 | 
							
								    hw_gpio_api_table.set_value(pin, 0);
							 | 
						|||
| 
								 | 
							
								    delay_sometime();
							 | 
						|||
| 
								 | 
							
								    hw_gpio_api_table.set_value(pin, 1);
							 | 
						|||
| 
								 | 
							
								    delay_sometime();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    uint32_t loops = 0;
							 | 
						|||
| 
								 | 
							
								    while(1)
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        ++loops;
							 | 
						|||
| 
								 | 
							
								        for(int bytes = 1; bytes < 254; bytes ++) {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            for(int band = 50; band <= 400; band += 50) {
							 | 
						|||
| 
								 | 
							
								                iot_printf("loops=%d, bytes=%d, band=%d\n", loops, bytes, band);
							 | 
						|||
| 
								 | 
							
								                i2c_set_baudrate(g_port, band);
							 | 
						|||
| 
								 | 
							
								                for(int times = 0; times < 100; times++) {
							 | 
						|||
| 
								 | 
							
								                    // write test
							 | 
						|||
| 
								 | 
							
								                    bTransferRequest = MASTER_REQ_WRITE;
							 | 
						|||
| 
								 | 
							
								                    ret = iot_i2c_write(g_port, addr ,(char *)&bTransferRequest, 1);
							 | 
						|||
| 
								 | 
							
								                    if ( ret ) {
							 | 
						|||
| 
								 | 
							
								                        iot_printf("write req failed ret = %d.\n", ret);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    hTxNumData = bytes;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    //delay_sometime();
							 | 
						|||
| 
								 | 
							
								                    ret = iot_i2c_write(g_port, addr ,(char *)&hTxNumData, 1);
							 | 
						|||
| 
								 | 
							
								                    if ( ret ) {
							 | 
						|||
| 
								 | 
							
								                        iot_printf("write num failed ret = %d.\n", ret);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    //delay_sometime();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    ret = iot_i2c_write(g_port,addr ,(char *)send_buf, hTxNumData );
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if ( ret ) {
							 | 
						|||
| 
								 | 
							
								                        iot_printf("write data failed ret = %d.\n", ret);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    // read test
							 | 
						|||
| 
								 | 
							
								                    bTransferRequest = MASTER_REQ_READ;
							 | 
						|||
| 
								 | 
							
								                    ret = iot_i2c_write(g_port, addr ,(char *)&bTransferRequest, 1);
							 | 
						|||
| 
								 | 
							
								                    if ( ret ) {
							 | 
						|||
| 
								 | 
							
								                        iot_printf("write req failed ret = %d.\n", ret);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    hRxNumData = hTxNumData;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    //delay_sometime();
							 | 
						|||
| 
								 | 
							
								                    ret = iot_i2c_write(g_port, addr ,(char *)&hRxNumData, 1);
							 | 
						|||
| 
								 | 
							
								                    if ( ret ) {
							 | 
						|||
| 
								 | 
							
								                        iot_printf("write num failed ret = %d.\n", ret);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (iot_i2c_read(g_port, addr, (char *)read_buf, hRxNumData)) {
							 | 
						|||
| 
								 | 
							
								                        iot_printf("read failed.\n");
							 | 
						|||
| 
								 | 
							
								                    } else {
							 | 
						|||
| 
								 | 
							
								                        for (int i = 0; i < hRxNumData; i ++) {
							 | 
						|||
| 
								 | 
							
								                            if(read_buf[i] != send_buf[i]) {
							 | 
						|||
| 
								 | 
							
								                                iot_printf("err at %d read:%02x send:%02x\r\n", i, read_buf[i] , send_buf[i]);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    inc ++;
							 | 
						|||
| 
								 | 
							
								                    for(int i = 0; i < sizeof(send_buf)/sizeof(send_buf[0]); i++) {
							 | 
						|||
| 
								 | 
							
								                        send_buf[i] = (i + inc) % 0xff;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								int i2c_main(void)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    uint8_t ret = 0;
							 | 
						|||
| 
								 | 
							
								    g_port = IOT_I2C_PORT_0;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    iot_i2c_module_cfg_t i2c_cfg;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    dbg_uart_init();
							 | 
						|||
| 
								 | 
							
								    uint32_t cpu_id = cpu_get_mhartid();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    iot_interrupt_init(cpu_id);
							 | 
						|||
| 
								 | 
							
								    iot_printf("start\r\n");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    i2c_cfg.baud = 2000;
							 | 
						|||
| 
								 | 
							
								    i2c_cfg.gpio.scl = 58; //23
							 | 
						|||
| 
								 | 
							
								    i2c_cfg.gpio.sda = 59; //24
							 | 
						|||
| 
								 | 
							
								    i2c_cfg.nack_wait_num = 2;
							 | 
						|||
| 
								 | 
							
								    i2c_cfg.open_cnt = 0;
							 | 
						|||
| 
								 | 
							
								    i2c_cfg.port = g_port;
							 | 
						|||
| 
								 | 
							
								    ret = iot_i2c_module_init(&i2c_cfg);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    if (0 != ret) {
							 | 
						|||
| 
								 | 
							
								        iot_printf("ret=%d\r\n", ret);
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								    at24c02_test_loop();
							 | 
						|||
| 
								 | 
							
								    stm32_slave_test();
							 | 
						|||
| 
								 | 
							
								    SHT2x_test_loop();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								      // 是否测试中断 ,测试中断时将I2C_AT24C02_ADDR 定义成非0x50的值如 0X51,
							 | 
						|||
| 
								 | 
							
								      // 由于不是24c02的地址,master收不到ack,超时后会触发nack中断和done中断
							 | 
						|||
| 
								 | 
							
								      // 上面的i2c_nack_cb 和 i2c_done_cb 会被调用,超时次数由 i2c_set_nack_wait_num
							 | 
						|||
| 
								 | 
							
								      // 设置
							 | 
						|||
| 
								 | 
							
								#if 0
							 | 
						|||
| 
								 | 
							
								    i2c_interrupt_init(g_port, I2C_NACK_TIMEOUT | I2C_TRANS_DOWN, i2c_cb);
							 | 
						|||
| 
								 | 
							
								    while(1)
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        at24c02_test();
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								#else
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    i2c_oled_init();
							 | 
						|||
| 
								 | 
							
								    while(1)
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        oled_test();
							 | 
						|||
| 
								 | 
							
								        at24c02_test_loop();
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#endif
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    return 0;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#ifdef __GNUC__
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								int main(void)
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    i2c_main();
							 | 
						|||
| 
								 | 
							
								    return 0;
							 | 
						|||
| 
								 | 
							
								}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								#endif // __GCC__
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 |