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

这篇具有很好参考价值的文章主要介绍了STM32通过串口接受文件写入Flash。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

准备材料:带FLASH的板子

                usb转232的数据线

                正点原子XCOM串口助手

STM32通过串口接受文件写入Flash,STM32,stm32,单片机,嵌入式硬件

 串口波特率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;        //写入地址累加
	        }
    }

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

如果觉得还不错的话留个赞吧,感谢!文章来源地址https://www.toymoban.com/news/detail-686419.html

到了这里,关于STM32通过串口接受文件写入Flash的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • stm32的HAL库函数flash无法写入的问题

    记录一下对flash编程操作时出现的问题以及解决办法 问题: 在使用HAL库中的HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Address, uint64_t Data)函数时发现总是没办法写入(明明写之前使用void FLASH_PageErase(uint32_t PageAddress)函数擦除了flash),查阅资料说是可能是因为固件库HAL_FLASH_Program函

    2024年02月07日
    浏览(49)
  • stm32串口空闲中断+DMA传输接受不定长数据+letter shell 实现命令行

    空闲中断(IDLE),俗称帧中断,即第一帧数据接收完毕到第二帧数据开始接收期间存在一个空闲状态(每接收一帧数据后空闲标志位置1),检测到此空闲状态后即执行中断程序。 空闲中断的优点在于省去了帧头帧尾的检测 ,进入中断程序即意味着已经接收到一组完整数据,仅需

    2024年02月03日
    浏览(60)
  • STM32采集问答式串口传感器数据写入SD卡(spi模式)

    STM32f103RCT6板子 问答式温湿度传感器(TTL信号) 外接SD卡模块(淘宝都差不多) 1. SD卡模块 ,采用SPI1接线 (CLK)SCK —PA5 (DATA0)MISO —PA6 (CMD)MOSI —PA7 (DATA3)CS —PA4 前面小括号里的是SDIO模式的接线,可以忽略。 2. 传感器模块 问答式TTL信号的传感器都可以, 连接到板子的串口2,

    2024年02月05日
    浏览(49)
  • stm32----串口通讯,通过串口控制LED灯

    1.初始化LED灯(根据原理图修改pin和gpio): 2.初始化串口 3.编译中断函数: 以下是完整代码: 效果如下

    2024年02月11日
    浏览(43)
  • STM32的bootloader程序(通过串口更新STM32应用程序)

            Bootloader,也被称为引导加载程序,是操作系统启动过程中的一个重要组成部分。它是存储在非易失性存储器中的一段小程序,负责在操作系统内核运行之前加载并启动一些必要的系统组件。         当计算机开机后,BIOS(基本输入/输出系统)会首先运行,检

    2024年02月04日
    浏览(51)
  • STM32通过DMA方式实现串口通信

    目录 一、DMA工作原理  二、创建工程项目 三、编写代码 1.在main.c写入以下函数 2.main函数中的while循环中写入以下代码

    2024年02月15日
    浏览(45)
  • 【STM32】文件系统FATFS与Flash的初步使用

    简介可以不看,直接看移植步骤 文件系统是介于应用层和底层间的模糊层。底层提供API,比如说使用SDIO或者SPI等读写一个字节。文件系统把这些API组合包装起来,并且提供一些列函数,我们可以使用这些函数进行更进一步的对存储设备的操作。 底层:操作单片机外设,读写

    2024年02月10日
    浏览(36)
  • STM32通过串口控制LED闪烁或者呼吸效果

    目录 STM32通过串口控制LED闪烁或者呼吸效果 1、准备工作 2、思路分析 3、实际操作 4、小结 1.首先我们需要准备32的最小系统板或者开发板。 2.准备一个LED灯(如果使用板子上的灯来实现则不需要,下面我是使用最小系统板上的LED灯来实现)。 3.若干杜邦线。 4.软件方面的准备

    2024年02月08日
    浏览(44)
  • STM32与Python上位机通过USB虚拟串口通信

    在详细阅读广大网友的教程之后,我对STM32和Python通过USB通信的流程烂熟于心。 尝试用ST公司的NUCLEO-L476RG板子进行简单的回环通信测试,发现还是存在网上无法找到的问题,这个耽搁了几天,期间找到了原因,但没有焊接调试,所以暂时就不以它为例子进行写了。 后采用正点

    2024年02月15日
    浏览(40)
  • STM32通过串口发送指令控制LED灯亮灭OLED并显示命令

    先来看看程序运行的结果吧: 接下来就不说废话了,自己看源代码吧!每一行我都做了注释: 首先是主函数main.c文件: 接下来是LED.h文件: 接下来是LED.c文件: 记下来是串口相关的Serial.h文件: 接下来就是最后一个serial.c文件了: 所有文件在工程中的目录为: 工程编译后下

    2024年04月16日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包