(自己测试了波特率:115200时写入500KB文件需要45秒,再高就没有测试了)
u32 WriteAddr=0; //开始写入地址
void USART1_IRQHandler(void)
{
u8 Res;
if(USART_GetITStatus(USART1,USART_IT_RXNE) != RESET)
{
USART_ClearITPendingBit(USART1,USART_IT_RXNE); //清除串口接收中断
Res=USART_ReceiveData(USART1);
SPI_Flash_Write_NoCheck(&Res,WriteAddr++,1);
//LCD_ShowxNum(120,75,pAddr,2,16,0); 原本想通过LCD观察传输的字节数有无错误,但是发现严重影响传输速度,最高1200,删除此行传输速度115200没有任何问题。
//USART_ClearITPendingBit(USART1,USART_IT_RXNE); //清除串口接收中断(把清除中断放在这个位置只会卡死,不知道怎么回事)
}
}
我使用的无检验写SPI-FLASH,写入前需要全片擦除一下。 |