STM32的JTAG和SWD模式的区别一:JTAG JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、 TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。相关JTAG引脚的定
导论Xmodem协议是一种很久之前就被提出的协议,其作为一种简单的工具,使得两台电脑可以相互通讯。由于其具有的半双工、128字节长度包数据(译者注:对于包数据长度不足128字节的情况,使用0x1A填充到128字节,一般发生于传输的最后一个数据包)、ACK/NACK应答以及CRC校验这些机制,在很多应用场合中都能见到Xmodem协议的身影。实际上,现在个人计算机上的大多数通信包都有一个xmodem协
在前一篇博文中我们已经介绍了在RT-Thread OS 下实现了IEEE1599/PTP 协议。但是这只是第一步,如何在控制系统中使用这一同步时钟呢?我们来讨论一下这个问题同步时钟源 实现了本机语主时钟设备同步
起因:串口IAP升级在正点原子的例程中有讲解,正点原子的方法是:在RAM中开辟一个120K的数据空间,用来存放bin文件,bin文件通过串口一次性发送到单片机,然后再实现程序的跳转。但是这种方法在实际项目中并不实用,因为没用文件校验,不能保证bin文件的完整性,如果贸然跳转,将会是设备陷入到永远无法正常工作的状态,除非返厂,重新烧写程序;因为项目需要,但是又不想自己写上位机(偷懒),因此就是用成熟
转载
2024-10-28 21:36:41
30阅读
从2002年就开始接触Modbus协议,以后陆续在PLC、DOS、Windows、.Net Micro Framework等系统中使用了该协议,在我以前写的一篇博文中详细记载了这一段经历,有兴趣的朋友可以看一看《我的Modbus Slave/Client开发历程(Rtu/AscII/Tcp)》。该协议公开,精简,并且可靠,目前大部分智能仪表,智能模块和一些PLC都采用了该协议,前一段时间有位网友询
LittleVGL (LVGL)入门教程一之移植到stm32芯片前言:2021年10月6日 注:以下教程针对LVGL V7版本,针对LVGL V8版本的教程可以看:LittleVGL(LVGL) V8版本 干货入门教程一之移植到STM32并运行2021年4月1日 注: 此篇教程适用于LVGL的v7版本,LVGL的v8版本貌似要出来了,发现v8与v7有较大出入,所以更改了文章的“下载源码”部分的内容
STM32 的图形加速器 DMA2D1. 背景 在实际使用 LTDC 控制器控制液晶屏时,配置好的显存地址写入要显示的像素数据,LTDC 就会把这些数据从显存中搬运到液晶面板进行显示。实际上要显示的数据量非常的大,我们常常以纯软件的方式填充显存(指定那个位置要显示什么颜色),这样非常影响绘图速度,因此我们希望能用 DMA 来操作,针对这个需求,STM32 专门定制了 DMA2D 外设,它可以用于快
STM32 SPI协议简介STM32是ST公司推出的一款基于ARM Cortex-M内核的32位微控制器,具有高性能、低功耗、易扩展等特点。其中,SPI(Serial Peripheral Interface)是STM32中常用的通信协议之一。SPI协议概述SPI协议是一种同步的串行通信协议,由一个主设备和一个或多个从设备组成。主设备通过时钟信号控制数据传输,从设备在时钟信号的作用下接收或发送数据
原创
2023-06-19 18:12:17
869阅读
目录一、本文讨论内容二、工具与源码三、Modbus概述四、Modbus-RTU通讯协议五、完成Modbus输入输出代码六、完成Modbus逻辑功能七、测试与验证一、本文讨论内容 本文简明概要的介绍Modbus通讯协议,并在STM32上实现Modbus协议,通过与Modbus Poll(一种Modbus上位机工具)联
转载
2024-05-11 07:59:25
2069阅读
相信很多人都希望,不开盖就可以对固件进行升级吧,就像手机那些。下文中的bootload就来实现这样的功能。 前段时间有项目关于Bootload设计。所以就仔细的去了研究了一翻。以前都是用的stm32官方的,没有去深入了解。这次做完了过后,发现官方的版本存在一些问题。比如说YModem传送过程中,完全
转载
2019-02-11 16:55:00
1642阅读
2评论
原标题:如何在STM32上移植Linux?超详细的实操经验分享刚从硬件跳槽为嵌软时,没有任何一丝的准备。一入职,领导就交代了一项特难的任务——在stm32上移植linux!瞬间我就懵了,没办法硬着头皮上吧,先搜集资料,我之前跑的是ok6410的板子上运行的linux,现在是在stm32上移植,以前stm32倒是玩过,研究生期间就捣鼓过它,但现在还没从抓烙铁的硬件当中缓过神来,就转到嵌入式软件的开发
0 keil5库函数配置1、建立工程文件夹,Keil中新建工程,选择型号
2、工程文件夹里建立Start、Library、User等文件夹,复制固件库里面的文件到工程文件夹。 Start文件夹中:复制 \STM32F10x_StdPeriph_Lib_V3.5.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm下,8个启动文件之
转载
2024-07-11 05:32:40
231阅读
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\"
借助总线矩阵,可以实现主控总线到被控总线的访问,这样即使在多个高速外设同时运行期间,系统也可以实现并发访问和高效运行。此架构如图 1 和图 2 所示基于STM32F4111、六条主控总线: ● Cortex™-M4F 内核 I 总线、D 总线和 S 总线; ● DMA1 存储器总线; ● DMA2 存储器总线; ● DMA2 外设总线。2、五条被控总
1.引言本文章基于stm32官方例程实现,详细代码可下载例程。在RT-thread系统上实现1588协议,网络驱动上需要做较多的修改。 2.代码修改
2.1驱动分析
当Accumulator register,溢出之后,会增加subsecond register一个步长,这个步长为constant value;每个时钟周期 Accumulator regis
转载
2024-10-29 20:20:12
242阅读
文章首发于://forum.butian.net/share/169目录起因挖掘sboot_stm32tinyusbdfu_moded_control_xfer_cb 越界访问netd_xfer_cb 整数溢出导致堆溢出lufa数据入口RNDISEthernet 控制请求处理溢出CCID_Task 栈溢出IP_ProcessIPPacket 越界访问TeenyUSB数
先在本地创建文件夹以保存keil的工程同时在该目录下创建一下文件1.User(存放stm头文件配置文件终端文件,已经自己写的函数) 进入官方库\stsw-stm32054\STM32F10x_StdPeriph_Lib_V3.5.0\Project\STM32F10x_StdPeriph_Template,复制以下四个文件到User下。 main 主函数 stm32f10x_conf.h 包含外设
多年前在使用STM32中的硬件SPI通讯过程中,发现所给的例程实际上是有问题的。最近我的学生跟同事总跟我反映:“SPI通讯他们调试速度总是上不去,芯片支持到25MHz,我们只能做到1M左右。” 今天台式SPI的时候,我将这个问题放上来说一下。 在STM32的SPI通讯过程中,非DMA模式下,每发送一个数据后,我们的代码是这样写的:void SPI1_Send_Byte(unsigned char
转载
2024-10-29 21:24:28
192阅读
STM32F407 Bootloader Ymodem 协议实现 相信很多人都希望,不开盖就可以对固件进行升级吧,就像手机那些。下文中的bootload就来实现这样的功能。 根据Ymodem协议,实现了一个STM32F407的Bootloader,该Bootloader能使用SecureCRT8中的Send Ymodem协议进行固
转载
2024-03-01 10:52:37
655阅读