一、stm32固件库学习1. 建立模板模板是按照附件的方法建立的,共建立了4个文件夹:CMSIS、Startup、USER、Project。在Project中还建立了2个文件夹:Obj和Listing,用于存放目标文件和列表文件。最终的物理目录如下。 在MDK4.23中建立相应的目录,实际上除了misc.c和stm32f10xrcc.c是必须的外,其它的库根据需要剪裁。 2.            
                
         
            
            
            
            STM32从傻子到智障你今天有的时间是后来的你所梦寐以求的,加油哇!通讯协议,百度下,大同小异。USART,通用同步异步收发器 左边引脚部分:TX发送数据输出引脚RX:接收数据输入引脚SCLK发送时钟输出引脚上面寄存器部分:USART_DR包含一个发送用的TDR寄存器和一个接收用的RDR寄存器。 发送时,将TDR寄存器内容发送到移位寄存器,一位位发出。接收时把收到的每一位保存到接收移位寄存器,然后            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-01 06:03:52
                            
                                163阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             fat文件系统的所有外部接口都在ff.h中物理驱动器、逻辑驱动器一个物理驱动器就是一个真实的存储设备,例如一个硬盘、一个内存卡。逻辑驱动器就是一个虚拟概念,一个硬盘可以分成CDEF共4个盘,每个盘就是一个逻辑驱动器。在FAT源码中有个宏 _VOLUMES,这个宏被用于配置FAT源码支持多少个逻辑驱动器。具体要配置成多少,看业务需求。FAT源码中有个全局指针数组如上*FatFs,这个指针            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-07-26 01:36:08
                            
                                134阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            多年前在使用STM32中的硬件SPI通讯过程中,发现所给的例程实际上是有问题的。最近我的学生跟同事总跟我反映:“SPI通讯他们调试速度总是上不去,芯片支持到25MHz,我们只能做到1M左右。” 今天台式SPI的时候,我将这个问题放上来说一下。 在STM32的SPI通讯过程中,非DMA模式下,每发送一个数据后,我们的代码是这样写的:void SPI1_Send_Byte(unsigned char            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-29 21:24:28
                            
                                192阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            首先列举ST官方开发板。这些开发板功能由简到繁,价格也是。Nucleo板最便宜,而且自带ST-LINK/V2-1。评估板带有更多外设模块,比较方便开发。STM32中文官网上有很多开发板资源。STM32 Nucleo开发板基于ARM Cortex-M内核的STM32 Nucleo开发板为用户提供了一个经济实惠且灵活的方式以供用户尝试新的想法,并能与任何STM32微控制器搭建技术原型,从性能、功耗和功            
                
         
            
            
            
            STM32F407 Bootloader Ymodem 协议实现   相信很多人都希望,不开盖就可以对固件进行升级吧,就像手机那些。下文中的bootload就来实现这样的功能。        根据Ymodem协议,实现了一个STM32F407的Bootloader,该Bootloader能使用SecureCRT8中的Send Ymodem协议进行固            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-01 10:52:37
                            
                                658阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            本章将实现的功能:     ① STM32F1通过串口和上位机对话;     ② STM32F1在收到上位机发过来的字符串后,原本地返回给上位机。 
  本章目录:     9.1 STM32串口简介     9.2 硬件设计     9.3 软件设计     9.4 下载验证            
                
         
            
            
            
            官方固件库中的对应函数为:void SystemInit (void)
{
  /* Reset the RCC clock configuration to the default reset state(for debug purpose) */
  /* Set HSION bit */
  RCC->CR |= (uint32_t)0x00000001;
  /* Reset SW            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-19 07:15:07
                            
                                93阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在最近的ctf比赛中,开始出现以stm32系列固件分析为代表的物联网安全类题目,由于这类问题涉及到嵌入式硬件、嵌入式系统等多方面的知识,未来出题、研究空间都非常广阔,这次就让我们借助题目一起来学习一下。由于考研失踪了很久,很多联系我的同学我也没能回复,希望大家原谅,之后一段时间我就正式回来啦。啥是stm32?STM32是一种功能强大的32位的单片机,它基于低功耗的ARM内核,由于它采取的            
                
         
            
            
            
            前言在单片机方面,针对于通讯常用的协议之一modbus,这里将modbus协议和硬件之间的关系完全独立出来,硬件和协议之间的联系采用的是回调的方式进行一个关联。说明1、此协议可直接移植,并不需要关心硬件相关的。 2、modbus相关协议概念自行查找,本文只做代码的实现。代码宏定义(modbus_core_define)modbus_core_define.h此头文件定义枚举和回调以及相关的功具类#            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-12 00:53:46
                            
                                494阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言硬件:单片机:stm32f072CB,sram大小16k。(其他单片机只要sram>8k即可通用)SPIFlash:W25Q128FV,16Mbyte,单次擦除最小4k。程序使用Keil编译器,C99标准。程序已经全部完成并测试通过,目前没出现明显问题。程序使用的FatFs库版本:R0.13b。下文所有内容仅保证在此版本可行。添加文件获取FatFs库(官网)将source文件夹全部复制到            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-10 18:59:12
                            
                                436阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            IAP:在线升级代码 ,通俗的讲就是通过USART,IIC,或者SPI,USB等等,方式,在程序中升级程序,一般用在远程升级,或者是在PCB板子都安装到模具之后还需要升级代码,这样我们就需要,通过IAP的方式来升级。软件代码托管码云地址:https://gitee.com/zyzp/stm32UartIAP开发环境:MDK-V5,stm32cubeMx,SecureCRT8硬件平台:stm32f1            
                
         
            
            
            
            文章首发于://forum.butian.net/share/169目录起因挖掘sboot_stm32tinyusbdfu_moded_control_xfer_cb 越界访问netd_xfer_cb 整数溢出导致堆溢出lufa数据入口RNDISEthernet 控制请求处理溢出CCID_Task 栈溢出IP_ProcessIPPacket 越界访问TeenyUSB数            
                
         
            
            
            
            1.引言本文章基于stm32官方例程实现,详细代码可下载例程。在RT-thread系统上实现1588协议,网络驱动上需要做较多的修改。 2.代码修改  
  2.1驱动分析    
  当Accumulator register,溢出之后,会增加subsecond register一个步长,这个步长为constant value;每个时钟周期 Accumulator regis            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-29 20:20:12
                            
                                242阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            先在本地创建文件夹以保存keil的工程同时在该目录下创建一下文件1.User(存放stm头文件配置文件终端文件,已经自己写的函数) 进入官方库\stsw-stm32054\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template,复制以下四个文件到User下。 main 主函数 stm32f10x_conf.h 包含外设            
                
         
            
            
            
            目录一. PCB画图生成BOM表网络表1. 建立PCB工程2. 右键工程,检查3. 导入原理图4. 执行变更,然后关闭5.进行元件布局二. 布线(自动布线)1. 准备工作2. 自动布线三. 覆铜四. 电气规则检查五、其它生成logoPCB图输出为Gerber光绘文件 一. PCB画图生成BOM表这是在原理图上生成 点击报告 点击左下角导出,将其保存 可以看到,生成的表格网络表点击“设计”→“工程            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-12 12:09:17
                            
                                159阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            相信很多人都希望,不开盖就可以对固件进行升级吧,就像手机那些。下文中的bootload就来实现这样的功能。 前段时间有项目关于Bootload设计。所以就仔细的去了研究了一翻。以前都是用的stm32官方的,没有去深入了解。这次做完了过后,发现官方的版本存在一些问题。比如说YModem传送过程中,完全            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-02-11 16:55:00
                            
                                1642阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            STM32中的RTC51单片机通常是外置的RTC芯片如DS1302,那么STM32的RTC是什么情况呢?STM32芯片自带RTC,因此不须像其他MCU需外接RTC模块。先读一读单片机的数据手册。实时时钟是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。RTC模块和时钟配置系统(RCC_BDCR寄存器)处于            
                
         
            
            
            
            目前我总结了两种串口通信时用到的串口协议程序。均学习的原子哥的。一、定义某个字符为一次接收数据完成,如/n/r。二、定义两个字符接收时间间隔,如10ms。超过即为第二次接收。一、程序示意:二、程序示意、#include \"delay.h\"
#include \"usart2.h\"
#include \"stdarg.h\"        
#include \"stdio.h\"                  
                
         
            
            
            
            原标题:如何在STM32上移植Linux?超详细的实操经验分享刚从硬件跳槽为嵌软时,没有任何一丝的准备。一入职,领导就交代了一项特难的任务——在stm32上移植linux!瞬间我就懵了,没办法硬着头皮上吧,先搜集资料,我之前跑的是ok6410的板子上运行的linux,现在是在stm32上移植,以前stm32倒是玩过,研究生期间就捣鼓过它,但现在还没从抓烙铁的硬件当中缓过神来,就转到嵌入式软件的开发