STM32十一天烧写中文字库在LCD上显示

首先用PCToLCD2002,生成中文字库,选择所有文件,选择GBK.bin

#include "stm32f10x.h"//包含了STM32的寄存器和变量类型
#include "stm32f10x_conf.h" //包含了库函数的.h
#include "led.h"
#include "key.h"
#include "delay.h"
#include "uart1.h"
#include //因为用到printf函数
#include "spi2.h"
#include "w25q64.h"
#include "iic.h"
#include "at24c02.h"
#include "lcd.h"

void Delay(int t)
{
	for(;t>0;t--);
}


int main(void)
{
	u8 i=0;
	u32 addr = 0;
	u8 data;
	//初始化延时函数
	delay_init(72);
	
	//初始化LED
	InitLED();
	
	//初始化KEY
	KEY_Init();
	
	//初始化USART1
	UART1_Init(115200);
	//   1/115200 0.0000087s *10 = 87us
	
  SPI2_Init(0,0);
	W25Q64_Init();
	
	IIC_Init();
	
	LCD_Init();
	
	//1、擦除扇区0块0扇区
	while(i<64)
	{
      W25Q64_SectorErase(0x000000+i*0X4096);
		i++;
	}
//1s发1K 20S
//随便稍写一个....//
	printf("Erase OK\r\n");

	while(1)
	{
		//接收数据
		while(!(USART1->SR&(1<<5)));//等待串口收到数据
		data = USART1->DR;  //串口里面就是8位
		W25Q64_ReceiveByte(addr,data);
		addr++;
		//26196*64?
		//这样就烧写完了代码...
		if(addr == 261696)
		{
				printf("Complete OK\r\n");
			while(1);
			
		}
	}
}
//注意GBK,有261926个字节255KB,  W25Q64有一个扇区4K, 需要64个扇区,先擦除然后写入

你可能感兴趣的:(STM32)