ARM嵌入式开发
文章平均质量分 78
ARM 芯片使用遇到的问题和麻烦
zhbi98
学习编程并不是一件轻而易举的事情,是需要时间的,在快时代背景下,我们其实更应该保持耐心,多给自己一点时间,
罗马不是一日建成的,沉住气做最优
展开
-
STM32移植U8G2
把对接屏幕驱动用到的这些自定义函数统一编写到一个文件中,文件可自行命名,例如命名为 u8g2_stm32.c,并添加到 u8g2 之外的用户目录。原创 2025-05-01 15:00:04 · 1266 阅读 · 0 评论 -
PCAN View 使用
如下图,第1步,点击波特率选择框右侧的编辑按钮。第2步点击相应调试器类型,这里以 CAN (SJA1000) 为例,其他类型方法相同。第3步,选择时钟频率,对于 CAN(SJA1000) 固定为 8MHz。第4步,点击添加一个波特率选项。第5步,点击新增波特率选项,再通过下图表格配置时序寄存器(BTR),BTR 寄存器值由两个字节组成,BTR 的每个数据位只由以下四个字段决定。(1) Prescaler 为时钟预分频系数,用于降低 CAN 时钟频率。原创 2025-04-19 16:06:06 · 1212 阅读 · 0 评论 -
SerialChart上位机使用详解
软件分为三个区域:接收数据区,用于显示串口接收的数据。参数配置区,用于配置串口参数和显示参数。波形显示区,显示串口数据的波形。在参数配置区写入串口号,波特率,通道波形颜色等,然后点击运行按钮即可。当串口接收到数据时,接收数据区和波形显示区都会有相应的显示。该软件可以同时显示多个通道的波形,直接按照格式添加通道名称和对应的波形颜色即可。原创 2024-06-19 23:54:02 · 1345 阅读 · 0 评论 -
MOSFET 驱动设计
(1) 从上述三个例子当中 MOSFET 驱动芯片会提供专用的管脚连接到 MOS 的栅极 G 和 源极 S 上。这是因为 MOS 管的导通需要控制极(G 极),而 G 极的电压是相对于 S 极的电压来控制的,如果 S 极没有接到 MOS 驱动芯片上,那么 G 极的电压就无法控制 MOS 管的导通,从而无法实现对负载的控制。(2) MOS 根据电路设计可以置于电路低侧或高侧,当然不排除低侧和高侧都有,所以要根据实际应用选择高侧或低侧驱动器芯片,或高低侧驱动器芯片同时驱动高侧和低侧开关管。原创 2023-12-10 21:58:07 · 6148 阅读 · 0 评论 -
详细了解 MOSFET 晶体管
(1) 耗尽型与增强型的主要区别在于耗尽型 MOS 管在栅极 G 不加电压时有导电沟道存在,而增强型 MOS 管只有在开启后,才会出现导电沟道。(2) 两者的控制方式也不一样,耗尽型 MOS 管的栅源电压 VGS 可以用正,零,负电压控制导通,而增强型 MOS 管则固定需要 VGS>VGS(th) 才能导通。(3) MOS 管改变栅源电压 VGS,实际是改变衬底靠近绝缘层处感应电荷的多少,从而控制漏极电流的大小。原创 2023-12-03 14:46:50 · 2340 阅读 · 0 评论 -
Makefile规则详解
一个 Makefile 文件中一般会定义多个 “目标”,例如一些 “真目标”,以及一些 “伪目标”。默认情况下执行make命令 Make 默认会构建 Makefile 的第一个 “目标”,然后逐步去构建第一个目标的依赖。如果你想让 Make 构建指定 “目标”,可以在make命令之后跟随要构建的 “目标” 名,例如或make clean,如果目标为 “真目标” 则构建出努比奥对象,如果目标为 “伪目标” 则执行某种操作。原创 2023-06-18 22:25:50 · 1133 阅读 · 0 评论 -
GCC命令与参数详解
使用 GCC 需要对编译的四个阶段(编译过程),以及编译的规则有一定的了解,熟悉使用 GCC 对于编写 Makefile 具有决定性的作用。GCC 的命令使用非常灵活,命令都以 gcc 开头然后配合待编译文件名,编译选项即可(可以说 GCC 就只有一条命令,只是编译选项较多而已)。命令选项可以随意组合,只需要注意选项是否包含参数即可,如果选项包含参数则参数需要紧紧跟随在选项后方。原创 2023-06-15 12:00:34 · 7666 阅读 · 0 评论 -
Modbus 协议详解
Modbus 属于串行通信协议,是 Modicon (即现在的施耐德)公司于 1979 年为可编程逻辑控制器 PLC 通信而发表,所以现在知道为什么以 Mod 开头了吧,目前不仅 PLC 使用,实际已经成为工业领域通信协议的标准,是现代工业电子设备之间常用的连接方式。Modbus 公开发表且无版权要求,易于部署和维护。下面我们来了解一下 Modbus 协议相关的细节,以及 Modbus 协议的应用方式。并行通信:数据各位同时传送。串行通信:数据一位一位顺序依次传送。(1)原创 2023-04-17 09:30:50 · 35305 阅读 · 1 评论 -
PID控制算法详解
在控制系统中,控制偏差 e 指的是设定值 w 与实际输出值 y 进行比较的结果即ew−ye = w-yew−y所谓 PID 调节器就是按照偏差 e 的比例(P),积分(I),微分(D)运算的线性组合构成控制量的一类调节器如下图所示。前面说过在实际应用中,PID 调节器的结构可以根据被控制对象的特性和控制要求灵活地改变,取其中一部分环节构成控制规律,组成各种不同的控制器。例如比例(P)调节器,比例积分调节器(PI),或比例微分调节器(PD)。原创 2023-03-09 15:38:49 · 13755 阅读 · 5 评论 -
RS485通信总线详解
RS-485 是美国电子工业协会(EIA)在 1983 年批准了一个新的平衡传输标准(Balanced Transmission Standard)也称作差分,EIA 刚开始将 RS(Recommended Standard)做为标准的前缀,不过后来为了便于识别标准的来源,将 RS 改为 EIA/TIA,所以目前该标准的名称为 TIA-485,但目前工程师们依旧习惯继续沿用 RS-485 作为该总线标准的名称。原创 2023-02-21 10:06:43 · 15870 阅读 · 4 评论 -
STM32串口传输浮点数
现代的计算机系统一般采用 **字节**(Octet, 8 bit Byte)作为逻辑寻址单位,当物理单位的长度大于 1 个字节时,就要区分字节顺序(Byte Order, or Endianness)。字节序,即字节在电脑中存放时的序列与输入(输出)时的序列是先到的在前还是后到的在前。字节序也用于描述多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序,常见的字节序有 **大端模式(Big Endian)** 和 **小端模式(Little Endian)** 两种,还有一种不太常见的 **中端模原创 2023-02-06 09:02:13 · 9050 阅读 · 0 评论 -
理解编码器M法/T法M\T法转速测量原理
M 法 又叫做频率测量法。这种方法是在一个固定的定时时间内(以秒为单位),统计这段时间内编码器发出的脉冲数量,以此计算速度值。设编码器单圈(旋转一圈)总脉冲数为 C,在时间 T0 内,统计到的编码器脉冲数为 M0,所以 T0 时间段内旋转过的圈数 R 为原创 2022-11-23 08:57:33 · 8199 阅读 · 0 评论 -
匿名四轴上位机使用方法
1. 版本样式版本 V2.6 这个版本不是最新的,较新的版本目前 V4.22 界面有明显的变化,但是对于运动处理器的数据和姿态验证来说这个 V2.6 版本是足够使用的,这个版本的界面如下图所示,这里有一个四轴无人机的三维模型以及一些数据仪表盘用于陀螺仪姿态等数据的可视化,使用非常直观。2. 基本功能选项卡基本功能和其他的串口工具一样,用于普通串口数据的发送和接收,这个面板可以选择串口所在的端口,并设置串口的波特率。所以在使用上位机之前都需要切到这个面板来选择串口和设置串口的波特率。3原创 2022-02-09 21:24:23 · 8233 阅读 · 11 评论 -
RGB 颜色格式转换
1. 图像格式简介计算机中图像基本是以 RGB888 格式显示的,特别是在我们常用的电脑计中,24 位图每个像素保存了 32bit 的数据,即 RGB888+Alpha,Alpha 即半透明填充字节。对于真彩的图像而言,肉眼在16bit 的时候已经难以分辨了,很多时候时候我们可以将 RGB888 转换为 RGB565 来存储,减少了存储器的容量的同时,降低了数据量。在显示的时候,我们再把 RGB565 转换为 RGB888,实现数据宽度的匹配。RGB888 总共使用24 位(三个字节)二进制数值表示,但原创 2022-02-06 15:48:43 · 15492 阅读 · 0 评论 -
crc 通信数据校验
1. 二进制模2取余计算方法CRC校验计算冗余码需要使用到二进制模2取余计算方法,二进制模 2 取余计算方法在计算上与普通的十进制的除法类似,只是此十进制被除数与除数仅仅是由 0 和 1组成的一个整数,例如被除数为 1100110000,除数为 11001。在计算的过程中唯一的差别是在除法运算过程中计算上下层数值相减时遵循的是二进制异或运算。(异或运算即 A+B = (~A)*B+A*( ~B),概括为 A 与 B 的值相同运算结果为 0,A 与 B 的值不同运算结果为 1)所以上下层数值相减时**1-原创 2022-01-26 11:10:30 · 2737 阅读 · 0 评论 -
芯片间通信数据校验
1. 求和校验在发送端将数据分为 k 段,每段均为等长的 n 比特。将分段 1 与分段 2 做求和操作,再逐一与分段 3 至 k做求和操作,得到长度为 n 比特的求和结果。并将该结果取反后作为校验和放在数据块后面,与数据块一起发送到接收端。在接收端对接收到的,包括校验和在内的所有 k+1 段数据求和,如果结果为零,就认为传输过程没有错误,所传数据正确,如果结果不为零,则表明发生了错误。2. 0校验,1校验设置为 1 校验,校验位始终为 1,接收方接收到数据发现检验位为 1 就判断数据传输过程中正原创 2022-01-24 11:26:12 · 558 阅读 · 0 评论 -
bus hound usb 调试
1. 概述Bus Hound 是一个超级软件总线协议分析器,用于捕捉来自设备的协议包和输入输出操作。该软件是由美国perisoft公司研制的一种专用于PC机各种总线数据包监视和控制的开发工具软件,其名"hound"的中文意思为"猎犬",即指其能敏锐地感知到总线的丝毫变化。适用于USB总线驱动的测试。2. 使用方法2.1. 选择被捕捉设备启动Bus Hound软件,将USB设备插入电脑。如图下图所示,进入"Devices"目录,在"Devices"内选择要监控的设备。例如:我的设备是一个U盘,则原创 2022-01-20 13:57:27 · 10003 阅读 · 1 评论 -
stm32 程序禁用 jtag 问题
程序中禁用的 jtag 如何释放一般 jtag 接口需要占用较多的芯片 IO 口,所以在 IO 口较少的情况下需要舍弃 jtag 接口,使用程序将 jtag 接口禁用并复用为普通的 GPIO 口。当程序下载后 jtag 接口就无法再用于 jtag 仿真或下载程序了。但是想将 jtag 接口重新设置为 jtag 接口又该怎么办呢,因为 jtag 已经不能用于下载程序了,即使程序中删除了禁用 jtag 的配置部分程序。对于这个问题可这样解决,因为决定 jtag 接口是专用仿真接口还是普通的 GP原创 2022-01-16 14:29:56 · 2531 阅读 · 0 评论 -
jflash 下载程序
1. 怎么开启 JFlashJLink 可以单独用于产品的下载环节,我们只使用 JLink 附带的软件 J-Flash,,J-Flash 在 Windows 系统的开始菜单 JLink 文件夹下可以找到,如果在系统的开始菜单无法找到 JLink,那么可以找到 JLink 的安装目录,在安装目录下可以找到软件 J-Flash2. 打开 J-Flash好的,现在你已经知道怎么找到J-Flash这个选项了,那我们就点击J-Flash这个选项,所打开的J-Flash界面如下图所示,如果是安装好J-原创 2022-01-12 12:29:00 · 15544 阅读 · 0 评论 -
jlink 与 swd 接口定义
1. JLink 介绍J-Link是SEGGER公司为支持仿真ARM内核推出的JTAG仿真器。J-Link 支持所有基于ARM架构的处理器或微控制器配合IAR EWAR,ADS,KEIL等集成开发环境进行开发过程中进行单步控制执行调试。 J-Link除了可以配合集成开发环境进行调试程序,进行程序下载之外,J-Link还可以单独使用。比如在产品的生产环节中,就可以单独使用J-Link进行固件的下载。JLink,SWD 接口定义缺口向左,左边为JLink接口 定义, 右边为SWD接口定义JTAG原创 2022-01-08 16:49:07 · 43049 阅读 · 3 评论 -
stm32 hal 库组织分析
1. CMSIS 标准2. HAL 库简介上图是一个标准的 STM32F103 HAL 库的文件组织方式,至于其他芯片的组织方式其实是一模一样的。基于寄存器方式的开发,实质上就是查找手册配置寄存器的过程,通过寄存器完成引脚的配置初始化和对应的操作。使用HAL库可以简化配置寄存器的过程,HAL 库借鉴面向对象的思想,将外设和引脚抽象为具有同样属性和操作的对象,定义数据类型和接口函数来描述片内外设,通过实例化数据和实现接口函数来操作引脚。3. HAL 库文件组织分析3.1. _...原创 2021-12-29 16:56:28 · 1101 阅读 · 22 评论 -
keil 解决 No Algorithm found for:08020000H-08024FD3H
1. 问题详情Keil 程序编译代码后点击下载,程序下载到上没法运行,同时 download 时有以下提示信息函数。No Algorithm found for: 08020000H - 08024FD3HPartial Erase Done (areas with no algorithms skipped!)No Algorithm found for: 08020000H - 08024FD3HPartial Programming Done (areas with no algorit原创 2021-12-26 09:16:31 · 3795 阅读 · 0 评论 -
stm32 boot 模式
1. 三种 boot 启动模式什么是启动模式,这个类似于我们使用的个人电脑在开机的时候可以进入到电脑的 BIOS (标准输入输出系统),在 BIOS 软件中可以选择在什么样的存储介质来启动 Windows 系统,比如可以选择读取在硬盘,光盘,或是 U盘中的系统进行启动。同样 stm32 芯片也可以选择在什么样的存储介质中来启动,并且为了方便切换所以预留了两个 boot 启动模式专用引脚,这个引脚分别为 BOOT0 和 BOOT1,通过给这两个引脚提供不同的电平来告诉芯片从那个存储介质中读取程序进行执行原创 2021-12-22 08:34:03 · 3721 阅读 · 0 评论 -
stm32 移植 FreeRTOS
1. 建立裸机工程在移植 freeRTOS 之前需要创建一个 stm32f103 的 keil5 裸机工程。所谓裸机工程就是包含 stm32f103 单片机的启动文件,外设驱动固件库的文件集合,也可以说是支持裸机开发的一个单片机运行环境。通过这样的一个工程即可进行 stm32 单片机的驱动开发。同时对于 freeRTOS 移植也需要一个这样的工程环境,换而言之 freeRTOS 的移植和配置需要用到裸机工程中的文件。2. 移植相关文件版本freeRTOS 使用 9.00 版本,可以通过 git原创 2021-12-05 11:13:08 · 5714 阅读 · 14 评论
分享