#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "spi.h"
#include "w25qxx.h"
#include "24cxx.h"
int main(void)
{
u8 t;
u8 m;
u8 len ;
u8 TEXT_Buffer[USART_REC_LEN];
u8 datatemp1[USART_REC_LEN];
u8 datatemp2[USART_REC_LEN];
u32 FLASH_SIZE;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//
delay_init(168); //
uart_init(115200); //
LED_Init(); //
AT24CXX_Init(); //
W25QXX_Init(); //
while(AT24CXX_Check())//
{
LED0=!LED0;//
}
while(W25QXX_ReadID()!=W25Q128) //
{
LED1=!LED1; //
}
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;//
printf("\r\n您发送的消息网为:\r\n");
for(m=0;m<len;m++)
{
TEXT_Buffer[m] = USART_RX_BUF[m] ; //将串口数据写到TEXT_Buffe(个人认为是这一步有问题)
}
AT24CXX_Write(0,(u8*)TEXT_Buffer,len);//
AT24CXX_Read(0,datatemp1,len);//
FLASH_SIZE=16*1024*1024; //
W25QXX_Write((u8*)datatemp1,FLASH_SIZE-100,len); //
W25QXX_Read(datatemp2,FLASH_SIZE-100,len); //
for(t=0;t<len;t++)
{
USART_SendData(USART1,datatemp2[t]); //
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//
}
printf(&quot;\r\n\r\n&quot;);//
USART_RX_STA=0;
}
}
}
发送文字会出现乱码 发送数字会丢失首位。直接用串口通信没问题,工程中加入IIc和SPI通信就会出错 个人认为是数据类型不匹配 但是不会改 求帮忙。 |