
STM32架构和驱动
文章平均质量分 69
STM32架构和驱动
lbaihao
zephyr,data structure, algorithm, protocol,darknet,architecture
展开
-
HC32F460 是否有 RTC?在电池供电方案中该如何使用?
[技术问答]HC32F460 是否有 RTC?在电池供电方案中该如何使用?_hc32f460 rtc-优快云博客华大HC32A460 系列介绍(三)_华大单片机内部温度传感器-优快云博客HC32F460PETB-LQFP100-华大半导体有限公司[【HC32F460开发板测评】(第二篇)HC32F460单片机的三种低功耗模式测评 - 国产芯片交流 -电子工程世界-论坛 -手机版原创 2024-02-27 17:22:11 · 526 阅读 · 0 评论 -
瑞萨 支持TrustZone®的R7FA4M2AC3CFM、R7FA4M2AD3CFM、R7FA4M2AD3CFP、R7FA4M2AC3CFP高性能32位微控制器
支持TrustZone®的R7FA4M2AC3CFM、R7FA4M2AD3CFM、R7FA4M2AD3CFP、R7FA4M2AC3CFP高性能32位微控制器。原创 2024-01-20 13:14:07 · 482 阅读 · 0 评论 -
CAN 总线调试
在CAN通信过程中,发送方(发送节点)发送数据给接收方(接收节点)后,通常情况下,接收方会在成功接收数据后对发送方进行确认。值得注意的是,CAN总线上的通信波形是数字信号,高电平(被动,recessive)和低电平(主动,dominant)的变化代表着数据位的传输。如果它检测到主动状态的位,这意味着至少有一个节点已经确认了帧的接收。通信错误:CAN总线具有差错检测和处理机制,如果发送方的数据在传输过程中出现错误,接收方会发送错误帧来指示出现了通信错误,发送方可能因为自身问题而无法正确识别这个错误帧。原创 2023-12-18 11:16:25 · 628 阅读 · 0 评论 -
NXP LPC5516 Flexcomm & GD32A503 MFCOM
GitHub - nxp-mcuxpresso/mcux-sdk-examples: MCUXpresso SDK ExamplesMCUXpresso SDK_面向Kinetis、LPC和i.MX MCU的软件开发 | NXP 半导体https://www.nxpic.org.cn/document/list-926/原创 2023-12-12 16:35:54 · 371 阅读 · 0 评论 -
单片机内存管理
下面给大家分享一份源码:基于无操作系统的STM32单片机开发,功能强大,可申请到地址空间连续的不同大小的内存空间,且用户接口简单,使用方便。源码包含memory.h 和 memory.c 两个文件(嵌入式C/C++代码的“标配”),其源码中包含重要的注释。这里的代码比较简单,也是常规的写法,重点是要理解结构体成员的含义。源文件主要就是实现内存管理的函数,源码比较多,这里才分为三部分。代码中包含注释,注释描述的比较清楚,也比较容易理解。那你知道,在无操作系统的情况下,怎么管理内存吗?》讲述了内存管理的方法。原创 2023-09-14 11:32:20 · 381 阅读 · 0 评论 -
解析ELF(mcu parse flash flm file)可执行文件-C语言
【代码】解析ELF(mcu parse flash flm file)可执行文件-C语言。原创 2023-05-29 21:35:14 · 918 阅读 · 0 评论 -
Programming internal SRAM over SWD
domain.1= writeRead:Write:return val。原创 2023-05-28 13:26:25 · 977 阅读 · 0 评论 -
MCU离线下载器swd_host
* 本文件中对此函数的使用都是先 asserted=1 调用,延时后 asserted=0 调用,为了只调用一次所以只在第二次调用此函数时执行软件复位 */原创 2023-05-28 12:49:25 · 2076 阅读 · 0 评论 -
FlashAlgo 算法python实现
"""从ELF文件中解析出FlashDev.c文件中定义的FlashDevice结构体变量的值"""然后根据section的信息创建可在RAM中执行的算法程序的二进制blob '''''' 从ELF文件中依次解析出Flash信息和所需的symbols、sections,''' 用模板文件生成输出文件, 此类的所有数据都可以在模板中通过 'algo' 访问。''' ELF对象包装,以更方便访问 symbols 和 rom '''''' 若zi段丢失,创建一个空的 '''原创 2023-05-27 22:30:23 · 1821 阅读 · 0 评论 -
VS2010 IAP ymodem c 实现
SOH | 序号 - 0x00 | 序号取反 - 0xff | 128字节数据,含文件名和文件大小字符串|CRC0 CRC1|FILE_FLAG_OVERLAPPED, /* 异步I/O */GENERIC_READ | GENERIC_WRITE, /* 允许读写*//* 设置好要发送数据包的前三个字符data[0],data[1],data[2] *//* 根据sizeBlk的大小设置数据区数据个数是取1024字节还是取128字节*//* soh表示数据包是128字节 */原创 2023-05-05 21:40:57 · 619 阅读 · 0 评论 -
单片机常见问题分析调试办法
如上图程序,本意是等待irq中断之后不再执行foo()函数,但被编译器优化之后,实际运行过程中flg可能被装入寄存器并且每次都判断寄存器内的值而不重新从ram里读取flg的值,导致即使irq中断发生foo()也一直运行,此处需要在flg的申明前加“volatile”关键字,强制每次都从ram里获取flg的值。此类问题通常需要结合map文件进行分析,通过map文件观察被篡改变量地址附近的数组,查看对该数组的写入操作是否存在如上图所示不安全的代码,将其修改为安全的代码。原创 2023-04-28 08:51:16 · 1772 阅读 · 0 评论 -
MCU短按长按的功能
首先读取按键的动作,再在switch case 里面匹配引脚的状态,case下用if判断按键动作或按下的时长,对状态、事件进行赋值。* 长按事件:按下时间大于 KEY_LONG_PRESS_TIME,释放后响应。KEY_Action_Release, // 按键动作,按下或释放。#define KEY_PRESSED_LEVEL 0 // 按键被按下时的电平。原创 2023-04-25 08:44:31 · 943 阅读 · 0 评论 -
SWD Connect/Transfer
NoteNoteNoteBit orderParityNoteNoteNoteNoteIf, orPurposeAttributesto 1.seeTypically:• For theSTICKYORUN//void)U8 rtn;rtn =return rtn;//void)//void)U8 ack;1);#define#define#definebitdata )原创 2023-03-11 18:48:55 · 856 阅读 · 0 评论 -
循环冗余校验(CRC)算法
另外一点,多项式表示和二进制表示都很繁琐,交流起来不方便,因此,文献中多用16进制简写法来表示,因为生成多项式的最高位肯定为1,最高位的位置由位宽可知,故在简记式中,将最高的1统一去掉了,如CRC32的生成多项式简记为04C11DB7实际上表示的是104C11DB7。不过这个代码已经比网上常见的计算代码要好了,因为这个代码有一个crc的参数,可以将上次计算的crc结果传入函数中作为这次计算的初始值,这对大数据块的CRC计算是很有用的,不需要一次将所有数据读入内存,而是读一部分算一次,全读完后就计算完了。原创 2022-12-23 16:32:33 · 2988 阅读 · 0 评论 -
pyOCD - 用于调试烧写 Cortex-M 芯片环境成功搭建
pyOCD 是一个开源 Python 软件包,用于多种受支持的硬件调试器(DAP-Link、J-Link、ST-Link)下编程和调试Arm Cortex-M微控制器。它是完全跨平台的,并支持Linux,macOS和Windows。它内置支持多达70种流行的MCU。pyOCD 允许用户通过命令来:烧录、擦除、单步、停止、设置断点、全速运行、芯片上锁、读写外设寄存器、读写存储空间等操作。原创 2022-10-16 11:39:41 · 15722 阅读 · 0 评论 -
MCU 多核通信
逐飞LPC55S69 IOT开发板之双核通讯的一些想法和测试 - LPC - 恩智浦技术社区原创 2022-09-23 19:42:02 · 887 阅读 · 0 评论 -
I2C 总线设备
I2C 简介I2C(Inter Integrated Circuit)总线是 PHILIPS 公司开发的一种半双工、双向二线制同步串行总线。I2C 总线传输数据时只需两根信号线,一根是双向数据线 SDA(serial data),另一根是双向时钟线 SCL(serial clock)。SPI 总线有两根线分别用于主从设备之间接收数据和发送数据,而 I2C 总线只使用一根线进行数据收发。I2C 和 SPI 一样以主从的方式工作,不同于 SPI 一主多从的结构,它允许同时有多个主设备存在,每个连接到总线原创 2022-05-15 22:46:34 · 3010 阅读 · 0 评论 -
STM32简易多级菜单(数组查表法)
STM32开发中,有时会用到屏幕来显示内容,当需要逐级显示内容时,就需要使用多级菜单的形式了。1 多级菜单多级菜单的实现,大体分为两种设计思路: 通过双向链表实现 通过数组查表实现总体思路都是把菜单的各个界面联系起来,可以从上级菜单跳到下级菜单,也可从下级菜单返回上级菜单。数组查表的方式比较简单,易于理解,本篇就来使用数组查表发在STM32上实现多级菜单的显示。2 代码实现2.1 数组查表首先需要定义一个结构体:typedef struct{ ucha...原创 2022-05-11 21:52:26 · 1125 阅读 · 0 评论 -
STM32国产替代,候选和比较
意法半导体的STM32单片机十几年来已经销售了几十亿颗,在国内几乎占有超过50%的大半壁江山。然而各种贸易环境影响,供货紧张,价格飞涨,假如我们必须替换STM32,有哪些国产是可以替代的呢?候选北京兆易创新-GD32系列上海灵动微电子-MM32系列沁恒微电子CH32F103(cortex M3),CH32V103(risc-v)华大半导体-HC32系列中科芯CETC雅特力Artery中微股份CMSemicon航顺Hangshun纳思达极海半导体(Geehy)芯海科技 (Chipsea原创 2022-04-23 21:58:10 · 9609 阅读 · 2 评论 -
STM32F103 窗口看门狗
窗口看门狗基本知识什么是窗口看门狗它也是一个看门狗,不过它的刷新(喂狗)操作,要在一个窗口时间内进行,不能大于时间窗的上限值或者小于下限值(0x40),这是它和独立看门狗不一样的地方。窗口看门狗的作用监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。(注:这里的故障不是程序死机,而是程序逻辑出现错误,导致没能够在窗口时间内刷新窗口看门狗)。除非递减计数器的值在T6位(WWDG–>CR的第六位)变成0前被刷新,看门狗电路在达到预置的时间周期时,会产生一个M原创 2022-04-23 10:07:46 · 392 阅读 · 1 评论 -
stm32f103 独立看门狗
STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。这里需要注意独立看门狗的时钟是一个内部RC时钟,所以并不是准确的40Khz,而是在30~60Khz之间的一个可变化的时钟,只是我们在估算的时候,以40Khz的频率来计算,看门狗对时间的要求不是很精确,所以,时钟有些偏差,都是可以接受的。首先我们得讲解一下看门狗的原理。我们总结一下:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内原创 2022-04-22 22:53:21 · 2168 阅读 · 0 评论 -
C语言在ARM中函数调用时,栈是如何变化的?
为什么会写篇栈变化的文章?做系统分析的话你肯定遇到过一些crash, oops等棘手问题,一般大家都会用 gdb, objdump 或者 addr2line等工具分析 pc 位置来定位出错的地方。但是这些分析工具背后的本质原理就不见得理解深刻了,而且有的时候面对一系列 backtrace 或者 stack 日志处于懵逼的状态。今天和大家一起看下面对 crash 日志的时候,如何利用 stack 来分析其变化的来龙去脉。Arm指令集介绍崇尚简单粗暴的介绍方式,我们直接来看各个寄存器的大体用法,详细原创 2022-04-17 23:37:07 · 624 阅读 · 0 评论 -
CmBacktrace使用方法
0、CmBacktrace 是什么CmBacktrace(Cortex Microcontroller Backtrace)是一款针对ARMCortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库。主要特性如下: 支持的错误包括: 断言(assert) 故障(Hard Fault, Memory Management Fault, Bus Fault, Usage Fault, Debug Fault) 故障原因自动诊断...原创 2022-04-17 21:50:19 · 1438 阅读 · 0 评论 -
初识STM32F103
1、什么是STM32STM32,从字面上理解,ST是指意法半导体公司,M是Micro-electronics的缩写,32表示32位,合起来理解,STM32就是指ST公司开发的32位微控制器。STM32的内核是ARM公司生产的ARMv7架构的32Cortex-M3微控制内核。2、STM32能做什么STM32属于一个微控制器,自带了各种常用通信接口,比如USART、I2C、SPI等,可连接非常多的传感器,可以控制很多的设备。现实生活中,我们接触到的很多电器产品中都有STM32的身影,比如智能手环、微型四原创 2022-04-13 21:20:16 · 4129 阅读 · 0 评论 -
keil环境下stm32f030R8 APP程序中断向量的重映射
1、理论基础: Stm32f030R8 有64KFlash + 8KSram Stm32f0系列MCU中断矢量表的定位跟STM32其它系列相比有点差异,即M0系列没有像其它M3/M4/M0+系列所具备的中断矢量表重定位寄存器,其中断矢量表不能借助矢量重定位寄存器简单修改实现。所以Stm32f0 IAP的过程会跟其它系列的STM32芯片的IAP动作有所不同。我们知道,做IAP往往需要两部分代码,一部分是用来升级的IAP程序,一部分用来运行用户实际应用功能的...原创 2022-04-09 02:10:01 · 1771 阅读 · 0 评论 -
STM32基于YModem协议串口升级程序的实现
【YModem】YModem串口IAP升级例程+YModem串口工具_lunei的博客-优快云博客_ymodem工具原创 2022-04-07 19:20:21 · 8741 阅读 · 6 评论 -
UCOS-ii在ARM处理器上的移植
UCOS-ii在ARM处理器上的移植_pamyung的博客-优快云博客_arm ucos原创 2022-03-18 12:12:22 · 532 阅读 · 0 评论 -
rt-thread 系统OS 调度
;*************************************************************************; ;************************************************************************* IMPORT rt_thread_switch_interrupt_flag IMPORT rt_interrupt_from_thread.原创 2022-03-11 20:57:41 · 432 阅读 · 0 评论 -
STM32硬件错误HardFault_Handler的处理方法
STM32硬件错误HardFault_Handler的处理方法_electrocrazy的博客-优快云博客_hardfault_handlerKeil 生成的Map文件分析_Taoo-优快云博客_keil map文件原创 2022-02-22 20:27:57 · 1712 阅读 · 0 评论 -
project_generator 自动生成mdk/iar/gcc工程
今天给大家推荐个好工具,可以用来自动生成mdk、iar、makefile工程。比如我项目的的源码最开始是别人用makefile来实现编译的,但是我比较熟悉keil或者iar,想重新创建这两个工程是不是要重新再分别建立一个keil工程和iar工程。然后手动把依赖的源码和头文件分别再添加到工程里面去。实际上不用那么麻烦,给大家推荐个工具:project-generator。这个是arm开发的一个python工具,你只需要根据他的格式写出来yaml文件(这个文件格式比makefile容易理解的多,格式很简单)原创 2021-11-23 17:28:37 · 982 阅读 · 0 评论 -
zephyr之i2C 和SCCB设备驱动
本文通过分析I2C和SCCB协议内容,说明为何I2C可以用于驱动SCCB设备,并给出了Zephyr下的实现代码。本文所介绍的I2C和SCCB协议内容只是为了说明为何I2C可以驱动SCCB设备,这些内容只是其原本协议的一小部分,更多详细的内容请参考文后链接。I2C和SCCB由于SCCB在数据传输上几乎和I2C一致,大多数情况下大家都将SCCB当作I2C来使用,其实质上二者还是有一定区别的。I2CI2C是飞利浦推出的一种总线协议,最早是在使用在电视上的设备,后面被推广到其它设备。I2C总线由SDA原创 2021-11-05 16:50:24 · 982 阅读 · 0 评论 -
模拟I2C软件实现
1、开始 在SCL处于高电平的状态时,SDA产生一个下降沿信号;/* *@brief i2c Start *@author Mr.W *@date 2020-8-3 */static void i2c_start(void){ I2C_SDA_OUTPUT_DIR; I2C_SDA_SET; i2c_delay(5); I2C_SCL_SET; i2c_delay(5); I2C_SDA_CLR; i2c_delay(5..原创 2021-11-02 17:38:16 · 500 阅读 · 0 评论 -
硬件I2C与模拟I2C
硬件I2C对应芯片上的I2C外设,有相应I2C驱动电路,其所使用的I2C管脚也是专用的,因而效率要远高于软件模拟的I2C;一般也较为稳定,但是程序较为繁琐。硬件(固件)I2C是直接调用内部寄存器进行配置;而软件I2C是没有寄存器这个概念的。 软件I2C一般是使用GPIO管脚,用软件控制SCL,SDA线输出高低电平,模拟i2c协议的时序。例如下面这段I2C的开始和结束信号,我们使用GPIOB模拟:I2C接线 GPIO引脚 模拟I2C引脚 GPIOB11 ...原创 2021-11-02 15:42:20 · 6546 阅读 · 0 评论 -
STM32 CAN总线
can总线中什么是远程帧所谓“远程帧”是一个传统翻译上的误区。Remote Frame实际上它的意义是“遥控帧”,发起方发起特定ID的远程帧,并且只发送ID部分,那么与其ID相符的终端设备就有义务在后半段的数据部分接管总线控制权并发送自己的数据。打个比方,中控机需要定时获取某个节点的数据(例如转速计的实时转速、油量计的实时油量等),可以向总线发送远程帧;相应节点在接收判断帧ID与自己相符、并且是远程帧的情况下,就可以将自己的实时数据发送到总线上;这样中控机就获取到了相关节点的实时数据。远程帧最大的好原创 2021-10-20 17:43:49 · 266 阅读 · 0 评论 -
STM32 QSPI-接口原理
QSPI接口简介QSPI是Queued SPI的简写,是Motorola公司推出的SPI接口的扩展,比SPI应用更加广泛。 在SPI协议的基础上,Motorola公司对其功能进行了增强,增加了队列传输机制,推出了队列串行外围接口协议(即QSPI协议)。 QSPI是一种专用的通信接口,连接单、双或四(条数据线)SPI FLASH存储器。...原创 2021-10-16 21:57:44 · 1557 阅读 · 0 评论 -
STM32 应用
STM32基于arm cortex核,目前在工业控制、通讯、物联网、车联网等行业应用很火,在功能丰富的同时拥有超高的性价比,大有打败和取缔ARM7的趋势。引用网上的一段话1、ARM最新的Cortex-M3内核。优先级抢占的中断控制器,支持中断自动嵌套,硬件完成现场保护与恢复,中断嵌套时,只需保护和恢复一次现场,即使在恢复现场的时候再次中断也不需要再次保护现场,只需6个clk的调原创 2016-07-09 14:54:29 · 830 阅读 · 0 评论 -
STM32之USB(1)
http://blog.youkuaiyun.com/anobodykey/article/details/50854797原创 2017-05-16 09:26:05 · 956 阅读 · 0 评论 -
[MDK]MDK通杀版注册机(更新最新的注册机,支持5.15, 5.16, 5.17,5.18,5.20,5.21, 5.22,5.23,5.24)
http://www.openedv.com/thread-69384-1-1.htmlMDK V5.21 问题已经在网友的帮助下已经得到解决,这里我总结一下解决办法:1)点击下载附件keygen.zip,解压。 keygen.zip (40.57 KB, 下载次数: 19396) 2)打开MDK(注意:WIN7以及以上系统,请点击MDK图标,转载 2017-08-16 08:58:27 · 73664 阅读 · 10 评论 -
模拟SPI实现和调试流程
一般来说,所有的spi通信设备都可以使用模拟spi来实现,而且模拟spi的好处就是不需要针对每一款mcu去重新熟悉其spi控制器的配置,只要简单配置一下spi_clk、spi_cs、spi_mosi、spi_miso四个引脚的输入输出即可,具有很好的可移植性。下面我以stm32为例,简单讲解一下模拟spi的实现和调试流程,实例中spi以上升沿来进行收发数据1、首先先贴出代码转载 2017-10-08 10:53:57 · 1564 阅读 · 0 评论 -
armcc/armlink初探
RealView编译工具armcc可以将c/c++ source code编译成arm target的object文件。关于armcc的指导文档可以参照http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0206ic/Chdefbgg.html同样可以在上面查找关于ARM体系结构,ARM软件开发工具,转载 2017-11-14 17:34:28 · 4288 阅读 · 0 评论