STM32开发——智能小车(循迹、避障、测速)

  • Post author:
  • Post category:其他



目录


1.循迹小车


1.1CubeMX配置


1.2函数代码


2.避障小车


3.小车测速


1.循迹小车

需求:用左右轮实现PWM调速、红外传感器获取道路信息改变方向。

左边红外D0——PB12

右边红外D0——PB13

1.1CubeMX配置

1.2函数代码

motor.c代码

#include "gpio.h"
#include "tim.h"

#define rightcon1A_low  HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET)
#define rightcon1A_high HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET)
#define rightcon1B_low  HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_RESET)
#define rightcon1B_high HAL_GPIO_WritePin(GPIOB,GPIO_PIN_1,GPIO_PIN_SET)

#define leftcon1A_low   HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_RESET)
#define leftcon1A_high  HAL_GPIO_WritePin(GPIOB,GPIO_PIN_2,GPIO_PIN_SET)
#define leftcon1B_low   HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_RESET)
#define leftcon1B_high  HAL_GPIO_WritePin(GPIOB,GPIO_PIN_10,GPIO_PIN_SET)

 
void go_forward()
{
			__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, 150);
			__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2, 150);
}

void go_left()
{
			__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, 85);
			__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2, 150);
}
void go_right()
{
			__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, 115);
			__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2, 85);
} 
void go_backward()
{
	leftcon1A_high;
	leftcon1B_low;
	
	rightcon1A_high;
	rightcon1B_low; 
}
 
void stop()
{
			__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_1, 0);
			__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_2, 0);
}

main.c

#include "motor.h"

#define	 xunj_left_valve    HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_12)
#define	 xunj_right_valve   HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_13)

//main
	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
 
  while (1)
  {
    
		if(xunj_left_valve==GPIO_PIN_RESET && xunj_right_valve==GPIO_PIN_RESET){
			//直行 朿夿199
			go_forward();
		}
		if(xunj_left_valve==GPIO_PIN_SET && xunj_right_valve==GPIO_PIN_RESET){
			//左转
			go_left();
		}
		if(xunj_left_valve==GPIO_PIN_RESET && xunj_right_valve==GPIO_PIN_SET){
			//右转
			go_right();
		}		
		if(xunj_left_valve==GPIO_PIN_SET && xunj_right_valve==GPIO_PIN_SET){
			//停止轿
			stop();
		}
 }	

2.避障小车

tim1:定时1us(超声波测距)

tim2:产生PWM波20ms(左右轮调速ch1、ch2) 产生PWM波20ms(舵机ch3)  7199、199

motor.c代码相同

main.c

double left_dis,right_dis,mid_dis;
float distance,left_distance,right_distance;

void TIM1_Delay_us(uint16_t n_us)
{
// 使能定时噿1计数 //
__HAL_TIM_ENABLE(&htim1);
__HAL_TIM_SetCounter(&htim1, 0);
while(__HAL_TIM_GetCounter(&htim1) < ((1 * n_us)-1) );
// 关闭定时噿1计数 //
__HAL_TIM_DISABLE(&htim1);
}

float sound_range(void)   //返回个距禿?
{
	uint16_t cnt;
	//1. Trig ,给Trig端口至少10us的高电平
	HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_SET);
	TIM1_Delay_us(15);
	HAL_GPIO_WritePin(GPIOB,GPIO_PIN_4,GPIO_PIN_RESET);
	//2. echo由低电平跳转到高电平,表示开始发送波
	//波发出去的那丿下,弿始启动定时器
	while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5) == GPIO_PIN_RESET);	
	__HAL_TIM_SetCounter(&htim1,0);  //定时器计数记得复使  运行了,感觉要不要都可以
	HAL_TIM_Base_Start(&htim1);    //也可以用启动定时器函数__HAL_TIM_ENABLE(&htim2) 后面用disable
	
	//3. 由高电平跳转回低电平,表示波回来 //波回来的那一下,我们始停止定时器
	while(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5) == GPIO_PIN_SET);
	HAL_TIM_Base_Stop(&htim1);
	//4. 计算出中间经过多少时
	cnt=__HAL_TIM_GetCounter(&htim1);
	//5. 距离 = 速度 340m/s* 时间/2(计1次表1us
	return (340*cnt*0.000001/2*100);  //返回的是cm
	
}

//main中代码	
	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);
	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);
	HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_3);

while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		
		__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_3,0);    //保持中间使5 中间18  右边55
		
		distance=sound_range();		 //用超声波棿测是否到达某个距禿 distance <10
 
		if(distance>10 ){	  //距离大于10cm  
			go_forward();
		}else{				   //距离<10cm  测距转向
			stop();
			
			__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_3,5);  //舵机左转
			HAL_Delay(2000);
			left_distance=sound_range();HAL_Delay(500);
			
			
			__HAL_TIM_SetCompare(&htim2, TIM_CHANNEL_3,35);  //舵机右转
			HAL_Delay(2000);
			right_distance=sound_range();	HAL_Delay(300);
			
			
			if(left_distance<=right_distance){
				go_right();
				HAL_Delay(300);
				stop();
			}
			if(left_distance>right_distance){
				go_left();
				HAL_Delay(300);
				stop();
			}
		}

		HAL_Delay(50);
  }

3.小车测速

tim1:定时1us(超声波测距)


tim2:产生PWM波20ms(左右轮调速ch1、ch2) 产生PWM波20ms(舵机ch3)  7199、199

不能用PWM波


tim3:定时1s(Oled发送速度)

tim4:

I2C1:PB6、  PB7(

I2C很容易和IO冲突

)——应该是硬件设计问题

I2C2:PB10、PB11

PB14:外部中断——测速累加

void TIM1_Delay_us(uint16_t n_us)
{
// 使能定时噿1计数 //
__HAL_TIM_ENABLE(&htim1);
__HAL_TIM_SetCounter(&htim1, 0);
while(__HAL_TIM_GetCounter(&htim1) < ((1 * n_us)-1) );
// 关闭定时噿1计数 //
__HAL_TIM_DISABLE(&htim1);
}

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)   //外部中断丿欿
{
	if(GPIO_Pin==GPIO_PIN_14){
		speedCnt++;
	}
}


void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)  //定时1s中断
{
	
	HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_8);

	if(htim==&htim3){	
		sprintf(speedmse,"speed:%2dcm/s",speedCnt);
		//printf("%s",speedmse);
		Oled_Show_Str(2,2,speedmse);
		speedCnt=0;
	}
}

//main中
	HAL_TIM_Base_Start_IT(&htim3);
	init_i2c();
	clear_oled();


OLED。c

#include "Oledfont.h"
#include "i2c.h"
#include "oled.h"

void w_cmd_i2c(uint8_t cmd)
{
	HAL_I2C_Mem_Write(&hi2c1,0x78,0x00,1,&cmd,1,0xff);
}
 
void w_data_i2c(uint8_t data1)
{
	HAL_I2C_Mem_Write(&hi2c1,0x78,0x40,1,&data1,1,0xff);
}
 
void init_i2c(void)
{
	w_cmd_i2c(0xAE);//--display off
	w_cmd_i2c(0x00);//---set low column address
	w_cmd_i2c(0x10);//---set high column address
	w_cmd_i2c(0x40);//--set start line address 
	w_cmd_i2c(0xB0);//--set page address
	w_cmd_i2c(0x81); // contract control
	w_cmd_i2c(0xFF);//--128 
	w_cmd_i2c(0xA1);//set segment remap
	w_cmd_i2c(0xA6);//--normal / reverse
	w_cmd_i2c(0xA8);//--set multiplex ratio(1 to 64)
	w_cmd_i2c(0x3F);//--1/32 duty
	w_cmd_i2c(0xC8);//Com scan direction
	w_cmd_i2c(0xD3);//-set display offset
	w_cmd_i2c(0x00);//
	w_cmd_i2c(0xD5);//set osc division
	w_cmd_i2c(0x80);//
	w_cmd_i2c(0xD8);//set area color mode off
	w_cmd_i2c(0x05);//
	w_cmd_i2c(0xD9);//Set Pre-Charge Period
	w_cmd_i2c(0xF1);//
	w_cmd_i2c(0xDA);//set com pin configuartion
	w_cmd_i2c(0x12);//
	w_cmd_i2c(0xDB);//set Vcomh
	w_cmd_i2c(0x30);//
	w_cmd_i2c(0x8D);//set charge pump enable
	w_cmd_i2c(0x14);//
	w_cmd_i2c(0xAF);//--turn on oled panel
}
 
void clear_oled(void)
{
	char i;  int j;
 
	for(i=0;i<8;i++){
		w_cmd_i2c(0xB0+i);    //变换page
		w_cmd_i2c(0x00);    //设置起始地址  低位
		w_cmd_i2c(0x10);    //设置起始地址  高位
		for(j=0;j<128;j++){
			w_data_i2c(0x00);  //写0就行  
		}
	}
	
}
 
void write_image(char *tx)
{
	int i,j;
	for(i=0;i<8;i++){
			
			w_cmd_i2c(0xB0+i);    //变换page  共有0-7 8个
			w_cmd_i2c(0x00);    //设置起始地址  低位
			w_cmd_i2c(0x10);    //设置起始地址  高位
			//i=3;
			for(j=128*i; j<(128*(i+1)); j++){   //变换的是tx中的数据
				w_data_i2c(tx[j]);  //tx中的数据  
			}
		}
}

void Oled_Show_Char(char row,char col,char oledChar){ //row*2-2
	unsigned int  i;
	w_cmd_i2c(0xb0+(row*2-2));                           //page 0
	w_cmd_i2c(0x00+(col&0x0f));                          //low
	w_cmd_i2c(0x10+(col>>4));                            //high	
	for(i=((oledChar-32)*16);i<((oledChar-32)*16+8);i++){
		w_data_i2c(F8X16[i]);                            //鍐欐暟鎹畂ledTable1
	}
 
	w_cmd_i2c(0xb0+(row*2-1));                           //page 1
	w_cmd_i2c(0x00+(col&0x0f));                          //low
	w_cmd_i2c(0x10+(col>>4));                            //high
	for(i=((oledChar-32)*16+8);i<((oledChar-32)*16+8+8);i++){
		w_data_i2c(F8X16[i]);                            //鍐欐暟鎹畂ledTable1
	}		
}

void Oled_Show_Str(char row,char col,char *str){
	while(*str!=0){
		Oled_Show_Char(row,col,*str);
		str++;
		col += 8;	
	}		
}

oledfont。h


const unsigned char F8X16[]=	  
{
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,// 0
  0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00,//! 1
  0x00,0x10,0x0C,0x06,0x10,0x0C,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//" 2
  0x40,0xC0,0x78,0x40,0xC0,0x78,0x40,0x00,0x04,0x3F,0x04,0x04,0x3F,0x04,0x04,0x00,//# 3
  0x00,0x70,0x88,0xFC,0x08,0x30,0x00,0x00,0x00,0x18,0x20,0xFF,0x21,0x1E,0x00,0x00,//$ 4
  0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00,//% 5
  0x00,0xF0,0x08,0x88,0x70,0x00,0x00,0x00,0x1E,0x21,0x23,0x24,0x19,0x27,0x21,0x10,//& 6
  0x10,0x16,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//' 7
  0x00,0x00,0x00,0xE0,0x18,0x04,0x02,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x40,0x00,//( 8
  0x00,0x02,0x04,0x18,0xE0,0x00,0x00,0x00,0x00,0x40,0x20,0x18,0x07,0x00,0x00,0x00,//) 9
  0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0F,0x01,0x02,0x02,0x00,//* 10
  0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x1F,0x01,0x01,0x01,0x00,//+ 11
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xB0,0x70,0x00,0x00,0x00,0x00,0x00,//, 12
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,//- 13
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00,//. 14
  0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x06,0x01,0x00,0x00,0x00,/// 15
  0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00,//0 16
  0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//1 17
  0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00,//2 18
  0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00,//3 19
  0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00,//4 20
  0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00,//5 21
  0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00,//6 22
  0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,//7 23
  0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00,//8 24
  0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00,//9 25
  0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,//: 26
  0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x60,0x00,0x00,0x00,0x00,//; 27
  0x00,0x00,0x80,0x40,0x20,0x10,0x08,0x00,0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x00,//< 28
  0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00,//= 29
  0x00,0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,0x20,0x10,0x08,0x04,0x02,0x01,0x00,//> 30
  0x00,0x70,0x48,0x08,0x08,0x08,0xF0,0x00,0x00,0x00,0x00,0x30,0x36,0x01,0x00,0x00,//? 31
  0xC0,0x30,0xC8,0x28,0xE8,0x10,0xE0,0x00,0x07,0x18,0x27,0x24,0x23,0x14,0x0B,0x00,//@ 32
  0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20,//A 33
  0x08,0xF8,0x88,0x88,0x88,0x70,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x11,0x0E,0x00,//B 34
  0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,//C 35
  0x08,0xF8,0x08,0x08,0x08,0x10,0xE0,0x00,0x20,0x3F,0x20,0x20,0x20,0x10,0x0F,0x00,//D 36
  0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x20,0x23,0x20,0x18,0x00,//E 37
  0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00,//F 38
  0xC0,0x30,0x08,0x08,0x08,0x38,0x00,0x00,0x07,0x18,0x20,0x20,0x22,0x1E,0x02,0x00,//G 39
  0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20,//H 40
  0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//I 41
  0x00,0x00,0x08,0x08,0xF8,0x08,0x08,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,0x00,//J 42
  0x08,0xF8,0x88,0xC0,0x28,0x18,0x08,0x00,0x20,0x3F,0x20,0x01,0x26,0x38,0x20,0x00,//K 43
  0x08,0xF8,0x08,0x00,0x00,0x00,0x00,0x00,0x20,0x3F,0x20,0x20,0x20,0x20,0x30,0x00,//L 44
  0x08,0xF8,0xF8,0x00,0xF8,0xF8,0x08,0x00,0x20,0x3F,0x00,0x3F,0x00,0x3F,0x20,0x00,//M 45
  0x08,0xF8,0x30,0xC0,0x00,0x08,0xF8,0x08,0x20,0x3F,0x20,0x00,0x07,0x18,0x3F,0x00,//N 46
  0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x10,0x20,0x20,0x20,0x10,0x0F,0x00,//O 47
  0x08,0xF8,0x08,0x08,0x08,0x08,0xF0,0x00,0x20,0x3F,0x21,0x01,0x01,0x01,0x00,0x00,//P 48
  0xE0,0x10,0x08,0x08,0x08,0x10,0xE0,0x00,0x0F,0x18,0x24,0x24,0x38,0x50,0x4F,0x00,//Q 49
  0x08,0xF8,0x88,0x88,0x88,0x88,0x70,0x00,0x20,0x3F,0x20,0x00,0x03,0x0C,0x30,0x20,//R 50
  0x00,0x70,0x88,0x08,0x08,0x08,0x38,0x00,0x00,0x38,0x20,0x21,0x21,0x22,0x1C,0x00,//S 51
  0x18,0x08,0x08,0xF8,0x08,0x08,0x18,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//T 52
  0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//U 53
  0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00,//V 54
  0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x03,0x00,//W 55
  0x08,0x18,0x68,0x80,0x80,0x68,0x18,0x08,0x20,0x30,0x2C,0x03,0x03,0x2C,0x30,0x20,//X 56
  0x08,0x38,0xC8,0x00,0xC8,0x38,0x08,0x00,0x00,0x00,0x20,0x3F,0x20,0x00,0x00,0x00,//Y 57
  0x10,0x08,0x08,0x08,0xC8,0x38,0x08,0x00,0x20,0x38,0x26,0x21,0x20,0x20,0x18,0x00,//Z 58
  0x00,0x00,0x00,0xFE,0x02,0x02,0x02,0x00,0x00,0x00,0x00,0x7F,0x40,0x40,0x40,0x00,//[ 59
  0x00,0x0C,0x30,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x06,0x38,0xC0,0x00,//\ 60
  0x00,0x02,0x02,0x02,0xFE,0x00,0x00,0x00,0x00,0x40,0x40,0x40,0x7F,0x00,0x00,0x00,//] 61
  0x00,0x00,0x04,0x02,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//^ 62
  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,//_ 63
  0x00,0x02,0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//` 64
  0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x19,0x24,0x22,0x22,0x22,0x3F,0x20,//a 65
  0x08,0xF8,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x3F,0x11,0x20,0x20,0x11,0x0E,0x00,//b 66
  0x00,0x00,0x00,0x80,0x80,0x80,0x00,0x00,0x00,0x0E,0x11,0x20,0x20,0x20,0x11,0x00,//c 67
  0x00,0x00,0x00,0x80,0x80,0x88,0xF8,0x00,0x00,0x0E,0x11,0x20,0x20,0x10,0x3F,0x20,//d 68
  0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x22,0x13,0x00,//e 69
  0x00,0x80,0x80,0xF0,0x88,0x88,0x88,0x18,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//f 70
  0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x6B,0x94,0x94,0x94,0x93,0x60,0x00,//g 71
  0x08,0xF8,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//h 72
  0x00,0x80,0x98,0x98,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//i 73
  0x00,0x00,0x00,0x80,0x98,0x98,0x00,0x00,0x00,0xC0,0x80,0x80,0x80,0x7F,0x00,0x00,//j 74
  0x08,0xF8,0x00,0x00,0x80,0x80,0x80,0x00,0x20,0x3F,0x24,0x02,0x2D,0x30,0x20,0x00,//k 75
  0x00,0x08,0x08,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00,//l 76
  0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,//m 77
  0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x3F,0x21,0x00,0x00,0x20,0x3F,0x20,//n 78
  0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x00,0x1F,0x20,0x20,0x20,0x20,0x1F,0x00,//o 79
  0x80,0x80,0x00,0x80,0x80,0x00,0x00,0x00,0x80,0xFF,0xA1,0x20,0x20,0x11,0x0E,0x00,//p 80
  0x00,0x00,0x00,0x80,0x80,0x80,0x80,0x00,0x00,0x0E,0x11,0x20,0x20,0xA0,0xFF,0x80,//q 81
  0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x20,0x20,0x3F,0x21,0x20,0x00,0x01,0x00,//r 82
  0x00,0x00,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x33,0x24,0x24,0x24,0x24,0x19,0x00,//s 83
  0x00,0x80,0x80,0xE0,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x1F,0x20,0x20,0x00,0x00,//t 84
  0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20,//u 85
  0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00,//v 86
  0x80,0x80,0x00,0x80,0x00,0x80,0x80,0x80,0x0F,0x30,0x0C,0x03,0x0C,0x30,0x0F,0x00,//w 87
  0x00,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x20,0x31,0x2E,0x0E,0x31,0x20,0x00,//x 88
  0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80,0x80,0x81,0x8E,0x70,0x18,0x06,0x01,0x00,//y 89
  0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00,//z 90
  0x00,0x00,0x00,0x00,0x80,0x7C,0x02,0x02,0x00,0x00,0x00,0x00,0x00,0x3F,0x40,0x40,//{ 91
  0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,//| 92
  0x00,0x02,0x02,0x7C,0x80,0x00,0x00,0x00,0x00,0x40,0x40,0x3F,0x00,0x00,0x00,0x00,//} 93
  0x00,0x06,0x01,0x01,0x02,0x02,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,//~ 94
};



版权声明:本文为m0_67794575原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。