×
单片机 > 单片机程序设计 > 详情

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

发布时间:2020-05-21 发布时间:
|
首先用PCToLCD2002,生成中文字库,选择所有文件,选择GBK.bin
 
  1. #include "stm32f10x.h"//包含了STM32的寄存器和变量类型  
  2. #include "stm32f10x_conf.h" //包含了库函数的.h  
  3. #include "led.h"  
  4. #include "key.h"  
  5. #include "delay.h"  
  6. #include "uart1.h"  
  7. #include //因为用到printf函数  
  8. #include "spi2.h"  
  9. #include "w25q64.h"  
  10. #include "iic.h"  
  11. #include "at24c02.h"  
  12. #include "lcd.h"  
  13.   
  14. void Delay(int t)  
  15. {  
  16.     for(;t>0;t--);  
  17. }  
  18.   
  19.   
  20. int main(void)  
  21. {  
  22.     u8 i=0;  
  23.     u32 addr = 0;  
  24.     u8 data;  
  25.     //初始化延时函数  
  26.     delay_init(72);  
  27.       
  28.     //初始化LED  
  29.     InitLED();  
  30.       
  31.     //初始化KEY  
  32.     KEY_Init();  
  33.       
  34.     //初始化USART1  
  35.     UART1_Init(115200);  
  36.     //   1/115200 0.0000087s *10 = 87us  
  37.       
  38.   SPI2_Init(0,0);  
  39.     W25Q64_Init();  
  40.       
  41.     IIC_Init();  
  42.       
  43.     LCD_Init();  
  44.       
  45.     //1、擦除扇区0块0扇区  
  46.     while(i<64)  
  47.     {  
  48.       W25Q64_SectorErase(0x000000+i*0X4096);  
  49.         i++;  
  50.     }  
  51. //1s发1K 20S  
  52. //随便稍写一个....//  
  53.     printf("Erase OK ");  
  54.   
  55.     while(1)  
  56.     {  
  57.         //接收数据  
  58.         while(!(USART1->SR&(1<<5)));//等待串口收到数据  
  59.         data = USART1->DR;  //串口里面就是8位  
  60.         W25Q64_ReceiveByte(addr,data);  
  61.         addr++;  
  62.         //26196*64?  
  63.         //这样就烧写完了代码...  
  64.         if(addr == 261696)  
  65.         {  
  66.                 printf("Complete OK ");  
  67.             while(1);  
  68.               
  69.         }  
  70.     }  
  71. }  
 
//注意GBK,有261926个字节255KB,  W25Q64有一个扇区4K, 需要64个扇区,先擦除然后写入  

 

 

关键字:STM32  中文字库  LCD上 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何为单片机选择合适的负载电容