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