微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32十一天烧写中文字库在LCD上显示

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

时间:11-19 来源:互联网 点击:
首先用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. voidDelay(intt)
  14. {
  15. for(;t>0;t--);
  16. }
  17. intmain(void)
  18. {
  19. u8i=0;
  20. u32addr=0;
  21. u8data;
  22. //初始化延时函数
  23. delay_init(72);
  24. //初始化LED
  25. InitLED();
  26. //初始化KEY
  27. KEY_Init();
  28. //初始化USART1
  29. UART1_Init(115200);
  30. //1/1152000.0000087s*10=87us
  31. SPI2_Init(0,0);
  32. W25Q64_Init();
  33. IIC_Init();
  34. LCD_Init();
  35. //1、擦除扇区0块0扇区
  36. while(i<64)
  37. {
  38. W25Q64_SectorErase(0x000000+i*0X4096);
  39. i++;
  40. }
  41. //1s发1K20S
  42. //随便稍写一个....//
  43. printf("EraseOK\r\n");
  44. while(1)
  45. {
  46. //接收数据
  47. while(!(USART1->SR&(1<5)));//等待串口收到数据
  48. data=USART1->DR;//串口里面就是8位
  49. W25Q64_ReceiveByte(addr,data);
  50. addr++;
  51. //26196*64?
  52. //这样就烧写完了代码...
  53. if(addr==261696)
  54. {
  55. printf("CompleteOK\r\n");
  56. while(1);
  57. }
  58. }
  59. }

//注意GBK,有261926个字节255KB,W25Q64有一个扇区4K,需要64个扇区,先擦除然后写入


Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top