9.1 CMSIS标准及库层次关系因为基于Cortex系列芯片采用的内核都是相同的,区别主要为核外的片上外设的差异,这些差异却导致软件同内核,不同外设的芯片上移植困难。为了解决不同的芯片厂商生产的Cortex微控制器软件的兼容性问题,ARM与芯片厂商建立了CMSIS标准(Cortex MicroController Software Interface Standard)。所谓CMS
IAP即在线应用编程,平时我们写好的程序都是通过下载器去下载的,但是对于组装好的产品在想更新底层硬件代码是很麻烦的事情,如果在公司情况还没那么糟糕,要是发出去的产品出现bug,你不可能要用户给你下载程序的。IAP这种技术,我们就可以像软件一样,可以实现远程更新了。我们需要做的就是,写单片机FLASH的读写接口,程序可以通过上位机进行下发,然后单片机程序调用FLASH写函数,把下发的代码写到对于FL
该篇文章主要讲解如何使用SMT32进行在线升级的方法和流程,并不会设计过多具体代码,之后会制作专门讲代码的视频。概述如何实现在线的固件更新,其实就是片子中保存一段BootLoader程序和主程序(我叫他APP程序)。正常情况下程序仅仅运行APP程序,当得到命令后,程序将跳转到BootLoader程序进行新的APP程序更新,完成后跳转到APP程序运行。呃,好绕,哎无所谓,将就看吧。 BootLo
目录一、基础教程二、进阶教程三、IDE优化四、学习笔记 一、基础教程 STMCube官网; stm32cube中文网; 安装使用教程;二、进阶教程 比较全的基础教程/配套视频教程(这个视频教程声音有点问题); 较好的视频教程; STM32CubeMX官方资料; STM32CubeF1用户资料(包括对应HAL库资料); STM32CubeF4用户资料(包括对应HAL库资料);三、IDE优化 代码
SIMULINK下的STM32F4的自动代码生成                             &n
目录说明一、点亮LED1.1、原理图1.2、硬件准备1.3、烧写二、开环控制2.1、硬件准备2.2、硬件连接2.3、打开工程2.4、修改参数2.5、编译下载,观察运行三、角度读取3.1、硬件准备3.2、硬件连接3.3、接线说明3.4、打开工程3.5、修改代码3.6、编译下载,观察运行四、闭环控制4.1、硬件准备4.2、硬件连接4.3、打开工程4.4、修改代码4.5、编译下载,观察运行五、电流采样
SIMULINK下的STM32F4的自动代码生成                             &n
STM32的PWM波动态调频和调占空比 以TIM3_CH1为例 (1)定时器工作原理 定时器的时基单元包含三个部分:①自动装载寄存器(TIMx_ARR),②预分频器寄存器 (TIMx_PSC),③计数器寄存器(TIMx_CNT)。设置自动装载值,预分频器根据所设置的分频系数(1-65536)对定时器所选择的时钟源进行分频,分频后的频率驱动计数器。计算器开始计数,当计数器达到自动装载值时,重新开始计
单片机固件升级相关前言理论实践 前言众所都周知,固件固件就是固定不动的软件,所以不用升级,此贴完结。 。 。 。 。 。 哎,话虽如此固件一般情况下不需要更新,毕竟主要功能是为控制一些底层的硬件,但是你永远不知道明天和需求哪个先来。所以一些必要时刻需要给你的单片机留一个后门用于应对各种需求。理论以stm32举例,默认情况下固件程序烧写在ROM上,所以只要使用一些手段在对应地址写上对应数据就可以
谈到STM32固件更新,首先就要了解一下固件的概念。固件是指下载到芯片里面去运行的二进制代码数据,是代码工程编译之后生成的,大家如果用的是MDK Keil的话,点了那个编译之后,就会生成固件,点击下载,固件就会被下载到STM32里面。我们平时说的下载程序,实际就是下载固件。固件更新,就是指通过一些方法,将芯片里面原有的固件替换为新的固件。这篇文章提供两种方法,都是基于STM32 IAP技术实现的(
转载 9月前
139阅读
目录下载固件流程:Bootloader程序设计流程普通工程改为APP工程的步骤背景:当嵌入式软件需要固件升级时,有时需要拆卸设备,较为麻烦,为方便升级,提供远程升级的功能,可通过网络或其他通讯接口传输固件进行升级。 系统分为两大模块:Bootloader和APP应用程序,系统复位后先运行Bootloader程序,此程序负责升级APP应用程序。Bootloader执行结束后跳至APP应用程序。APP
转载 2024-10-07 12:43:54
326阅读
随言:spi_lcd屏幕其实不适合用于曲线显示。数据传输太慢了而且传输数据过程还需传一些设置命令。但是需求来了,软硬件压榨一下也能做出来。硬件:STM32F407 + 1.54寸ST7789屏幕STM32CubeIDE:SPI配置速度最快。使用硬件SPI发送。ST7789手册:翻一下ST7789这个屏幕显示驱动芯片的技术手册,看一下寄存器,有哪些能提升速度的。看到0xC6这个寄存器可以设置屏幕刷新
STM32CubeMX 真的不要太好用由于工作内容的变动,我已经很久没有正经的玩过单片机了,近期又要用它做个小玩意了,还是选 stm32 吧,外设库开发不要太方便,哈哈哈先去 stm32 社区逛了逛,发现了一个新字眼 STM32CubeMX,简单看了下,大概明白是个 ST 公司新推出的一个配置工具,直接由图形界面简单配置下,生成初始化代码,并对外设做了进一步的抽象,让开发人员更只专注应用的开发,挺
转载 2024-06-19 19:44:29
461阅读
1.简介这里利用基于STM32F103RCT6的一块自带led灯的开发板,首先通过STM32CUBEMX产生.ioc配置文件,其次对Simulink进行所必须的配置,然后利用Simulink的图形化界面实现简单的使led灯闪烁的逻辑框图,接着就是自动生成代码(生成keil工程文件),最后将代码烧录至芯片中便可实现led灯的闪烁。注:利用sumulink联合STM32CUBEMX开发stm32对软件
 1.什么是“代码自动生成工具”为了降低开发者的开发门槛,缩短开发周期,降低开发资源投入,机智云推出了代码自动生成服务。云端会根据产品定义的数据点生成对应产品的设备端代码。自动生成的代码实现了机智云通信协议的解析与封包、传感器数据与通信数据的转换逻辑,并封装成了简单的API,且提供了多种平台的实例代码。当设备收到云端或APP端的数据后,程序会将数据转换成对应的事件并通知到应用层,开发者只
 MCU固件库的文件很多,从固件库手动复制必要的文件来组成一个项目是比较复杂的,使用标准库进行开发时就是这样做的。但是STM32Cube开发方式下,我们可以用CubeMX对MCU和中间件进行图形化配置,自动生成外设初始化代码和CubeIDE项目框架。自动生成的CubeIDE项目包含了必要的驱动程序文件,并且以统一而清晰的方式组织这些源文件,用户子需要在初始代码的基础上专注于实现用户功能
搜索了一圈 ,STM32CubeIDE上的相关方法不多,记录一下两个过程,翻译自外网(导师提供内容,不是机翻,手打的,有删减无关内容,自己实践了一遍,芯片等等有些不同)开篇现在相当多的微控制器没有一个控制台的模块,但是debug的时候输出的信息相当的重要,已有的一种方法是使用半主机模式(semihosting with STM32CubeIDE)。但是semihosting with STM32C
在做开发的前几年,基本上都没用仿真,有bug就尝试改程序,一边改一边调试。甚至都还不知道硬件仿真存在的价值,因为一直都没用过,而且很多芯片也不支持。直到有一次在做行车记录仪项目的时候,接触到了GRAIN公司的一款单片机。本来我打算是直接开干的,但是老大非要我把这个芯片的仿真环境搭好。于是我就开始网上搜集资料,不得不说这块的资料真少,那时又刚接触仿真这块的。搞了将近半个月都搞不定,然后我鼓起勇气跟老
转载 11月前
532阅读
1、USB库简介环境:CUBEMX 5.6.1STM32Cube MCU Package for STM32F1 Series 1.8.0STM32F1xx HAL Driver version number V1.1.4STM32官方提供了两套USB的库,一套用于HOST,一套用于DEVICE,且提供了一些参考资料,如下.UM1720用户手册(HOST)UM1734用户手册(DEVICE)在这里
转载 7月前
123阅读
当设计中使用I2C的数量多于1个时,其底层I2C的代码逻辑都是一样的,只有IO口变了,为此还要复制粘贴、修改IO,不仅费时,而且还浪费片内资源,因此可以使用指针来重复执行IIC底层代码,实现一个代码,多个IO使用。注意:使用什么IO口,一定要打开其IO时钟,同时配置为输出开漏模式!!! 使用例程最下面Stm32f30x_SMLT_I2C.h#ifndef __Stm32f30x_SMLT_I2C
  • 1
  • 2
  • 3
  • 4
  • 5