STM32通过串口接受文件写入Flash

您所在的位置:网站首页 usb属于串行接口吗 STM32通过串口接受文件写入Flash

STM32通过串口接受文件写入Flash

#STM32通过串口接受文件写入Flash| 来源: 网络整理| 查看: 265

        上次突发奇想,自己想做一个字库,就是把字模文件写入到FLASH里面;当时没有上位机,如果自己一个一个拆分发送很麻烦,所以自己找了很多资料,最后实现了字库。

        这个方法没有协议,所以有一定的概率出错。但是临时用一用是足够了。如果需要高稳定性,建议自己做上位机。

准备材料:带FLASH的板子

                usb转232的数据线

                正点原子XCOM串口助手

 串口波特率115200,最好不要太低;

设置延时100(最高),这个时间是让单片机把接受的数据写入到Flash。

首先找一个例程或着工程,最好是带SPI-FLASH驱动和串口驱动。

保证传输前已经格式化FLASH或者已经擦除需要的空间。

程序最好不要有其他中断或者其他任务,保证传输文件的准确性。

定义文件写入地址,后期取字模的时候需要用到。

开启空闲中断,因为我是在空闲中断里面处理数据。

uint32_t WriteAddr = 0 ; //文件在flash中写入地址,根据自己的需要定义 USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);//开启串口接收中断 USART_ITConfig(USART2, USART_IT_IDLE, ENABLE);//开启串口空闲中断 void USART1_IRQHandler(void) { //串口1中断服务程序 if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) { //字符接收中断 USART1_RX_BUF[length++] = USART1->DR & 0x0FF; } else if(USART_GetITStatus(USART1, USART_IT_IDLE ) != RESET) {//空闲帧中断 每次发送完一帧数据就会进这里 //处理接受的数据 //在这里写自己的SPI写入函数 //以我自己的为例 //W25Q128_Write(u8* pBuffer,u32 WriteAddr,u16 NumByteToWrite) ; W25Q128_Write(USART1_RX_BUF, WriteAddr ,length) ; //将串口接受的数据写FLASH WriteAddr +=length; //写入地址累加 } }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3