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

        上次突发奇想,自己想做一个字库,就是把字模文件写入到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;        //写入地址累加
	        }
    }

如果哪里有不懂得,可以留言或者评论,我会第一时间回复解答!

如果觉得还不错的话留个赞吧,感谢!

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tursun225

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值