自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ApexYuan

Learn & Share

  • 博客(148)
  • 资源 (9)
  • 收藏
  • 关注

原创 python实现CRC32计算

【代码】python实现CRC32计算。

2024-07-03 10:07:39 336

原创 RoboDK试用期间提示无效或过期的许可证

该目录下的文件全部删除掉,便可以正常使用RoboDK应用了,但是等软件关闭后还是会出现上面的问题,还需要执行同样的操作。RoboDK下载下来在试用期间提示如下信息,不知道什么原因。

2024-06-18 19:15:37 331

原创 通过微软提供的工具制作win10启动盘

【代码】通过微软提供的工具制作win10启动盘。

2024-06-11 13:34:22 415

原创 机械臂学习资料收集

机器人学之运动学笔记【3】—— 机械臂DH表示法+正向运动学(Forward Kinematics)标准DH建模与改进DH建模

2024-06-07 12:29:19 119

原创 STM32 MAP文件结合固件文件分析

MAP 文件分析可以参考之前的文章程序代码在未运行时在存储器空间内称为加载域,在运行时在存储器空间内称为运行域。在这里我们根据加载域的描述可以知道加载域的空间结束位置应该为0x08020000+0x00010978=0x08030978的位置。从下面的固件我们可以知道固件的实际结束位置应该是0x080305E8。这里的俩个位置并不一致是什么原因呢?我们继续往下逐步分析。上图内容的最后一行:结束地址为0x080304e0+0x20=0x08030500,和第一行中的描述一致。根据类型和属性可以知道这一部分

2024-05-24 20:14:31 1042

原创 Keil MDK map文件学习笔记

从flash的0x08030500位置开始加载数据,加载大小为0x000069b0大小的数据到RAM空间(上图最后一行0x200049b0+0x2000=0x200069b0)。这里要注意的是并非直接从0x08030500直接向后复制0x000069b0大小的数据到RAM中,实际是根据FLASH空间中的0x08030500后面的部分数据和之前的分散加载表等内容在RAM中生成的0x69b0空间。上面两个红框中的内容分别对应于全局函数和全局变量,并显示了所在执行域空间的位置和大小。

2024-05-24 15:52:17 885

原创 基于STM32看Cotex-M内核中断向量表重定向

正常的执行过程为,启动时先执行Boot程序中的Reset_Handler函数然后经过分散加载,初始化堆栈,初始化C库后跳转到用户main函数执行,其中监测到不许要升级则通过跳转函数(设置主栈指针,将App中Reset_Handler函数的地址作为执行地址)跳转到App程序中的Reset_Handler函数,然后再经过分散加载,初始化堆栈,初始化C库等操作后跳转到用户main函数中执行,在main函数开始位置首先要修改VTOR的值,则后续的中断触发都会跳转到App代码中对应的中断服务函数中。

2024-05-24 13:25:54 980

原创 基于STM32看Cortex-M内核相关的一些底层知识

向量表位于存储器的开头部分,它的头两个字为主栈指针(MSP)的初始值,以及代表复位处理起始地址的复位向量(参考本书图4.26和4.5.3节)。细心的你可以能已经发现了,这里固件中存储的向量表的地址和map文件中对应的函数地址不完全一致,差了1,这是因为向量表的LSB位必须置1以表示Thumb状态(Cortex-M处理器不支持ARM状态)从上面的map文件中我们可以看出程序的栈顶地址就是0x200069b0,从下面的固件中我们可以看出起始地址存放的就是栈顶指针的值。复位函数是系统上电后第一个执行的程序。

2024-05-23 17:39:45 433 1

原创 无刷电机中对霍尔同步电角度的理解

在自己的驱动程序中也使用了ST的方法来测量同步电角度,然后根据当前霍尔的状态再确定启动时的电角度。在霍尔无刷电机驱动时需要进行初始电角度定位,根据ST电机库提供的方法首先我们要测量同步电角度。

2024-05-13 17:18:51 230

原创 记一次使用STM32F042K6芯片内部HSI48M时钟导致CAN总线报错问题

深入去解决某个问题时,也会加深你对其它部分的了解和思考,比如这里让我又重新了解和CAN的采样点和CAN报错机制。

2024-04-12 20:33:36 393

原创 STM32笔记---CAN采样点设置和报错

这里我们可以在HAL库的CAN中断处理的部分找到依据,ERRIE中断使能后出错时会将主状态寄存器(MSR)中的ERRI位置位,然后再依次判断有哪些分开关管理的错误中断触发了。之前使用CAN总线一直没详细搞清楚,使能的错误中断都具体对应的是什么,使用的时候一下把所有的CAN错误中断都使能上,正好今天遇到的CAN总线的一些问题,详细看了下。再同步补偿宽度(SJW)的设置范围位1-4TQ,相当于CAN总线的采样点可以根据实际情况在1-4个TQ范围内进行调整,这个值大可以增大CAN波特率的容错范围。

2024-04-12 19:37:23 1632

原创 C语言知识点---char *a和char a[]

在 C 语言中,字符串实际上是使用空字符 \0 结尾的一维字符数组。因此,\0 是用于标记字符串的结束。= 17 ,a为数组名,sizeof可以直接计算数组所占空间的大小。= 4,p为指针变量,sizeof计算的是这个变量所占空间的大小。a为数组名,数组首元素的指针常量,因此a不能被赋值。: a为char类型数组名,表示数组的首地址,可以将数组名赋值给指针变量p。这两种形式都可以定义字符串。类型指针,表示用于存放。

2024-04-08 15:59:59 336

原创 vscode开发ESP32问题记录

首先可以通过vscode 中的IDF插件生成模板工程,这样会自动创建。文件夹中的一些json配置文件,保存后对应的波浪线警告便消失了。

2024-04-04 12:09:29 461

原创 ESP32学习---ESP-NOW(一)

ESP-NOW 是乐鑫定义的一种无线通信协议,能够在无路由器的情况下直接、快速、低功耗地控制智能设备。它能够与 Wi-Fi 和 Bluetooth LE 共存,支持乐鑫 ESP8266、ESP32、ESP32-S 和 ESP32-C 等多系列 SoC。ESP-NOW 广泛应用于智能家电、远程控制和传感器等领域。

2024-04-03 20:09:03 652

原创 基于vscode Arduino插件开发Arduino项目

因此可以知道:vscode中的Arduino插件已经不支持添加Arduino IDE路径的方式了,转而使用了Arduino CLI(用于开发arduino的命令行工具)的方式。这样在vscode中开发Arduino可以不依赖于Arduino IDE,即不安装Arduino IDE也可以。意思是说:早期Arduino IDE的支持方式将在插件的下个发布版本中移除,请尽快使用Arduion CLI.指定输出路径,可以提高编译速度,也可以直接从输出路径中获取编译的二进制文件。便可以正常输出详细信息了。

2024-04-03 10:53:46 1286 1

原创 ESP32学习---ESP-NOW

这里使用3个模块之间互相传输数据,首先我们先要获取到3个模块的MAC地址,每个模块向外发送数据并同时接收来自于其它两个模块的数据。打开串口监视器复位模块显示信息中会包含如下信息即为mac地址。

2024-03-31 00:23:48 1104

原创 python知识点记录

版本是支持python2.7的最后版本,如果使用的是python2.7环境的话,需要安装正确的版本才能正常使用。是python的一个轻量级的定时任务调度库,可以实现每分钟,每天,每周的定时任务等,类似于Linux系统下的。官网地址:https://pypi.org/project/schedule/基于python的进程管理工具。

2024-03-29 23:41:45 258

原创 Linux知识点记录

这里的0,1,2分别代表标准输入(stdin),标准输出(stdout),标准错误(stderr):该种方法当用户挂起或退出的时候,命令会自动结束,即当前终端退出的时候,程序也会自动结束。的方法一致 ,例如:后台运行test1和test2程序。是指不挂断的运行,即使终端关闭也会继续运行。的含义:将标准错误输出重新定向到标准输出。在执行程序的时候后面加上。程序不指定为后台运行,

2024-03-29 23:20:49 497

原创 Linux查看重启时间,关机时间,运行时长的指令

这里测试环境为Ubuntu 16.04。可以通过下面的方式来进行查询。指令查看详细指令用法。

2024-03-29 15:21:09 787

原创 termux+ubuntu使用笔记

通过service 来替代systemctl指令,因为当前的Ubuntu系统使用的是经典的SysV init系统来管理服务,不支持systemd的方式。如果想实现的是定期清理日志的功能,或者和当前Ubuntu环境关系不大时可以通过termux环境下的cron工具来实现定时执行的功能。在termux $HOME目录下添加.bashrc文件,添加上如下所示指令便可以在termux应用启动的时候自动启动。是一个基于python的客户端/服务器系统,允许用户控制操作系统上的进程,这里需要注意的是我们一定要通过。

2024-03-23 19:12:37 1159

原创 supervisor使用方法和报错分析

Supervisor是一个使用Python语言开发的一个用于管理与监控进程的程序。安装可以通过pip方式安装supervisorctl status #查看进程运行状态supervisorctl start <进程名> #启动进程supervisorctl stop <进程名> #关闭进程supervisorctl restart <进程名> #重启进程supervisorctl update #重新载入配置文件supervisorctl shutdown #关闭supervisord。

2024-03-22 18:56:48 297

原创 Linux下CAN调试工具can-utils的使用

这里是只监听CANID为0x181,0x281的数据。(知识点:CAN标准帧ID为11位,对应的掩码为0x7FF。CAN扩展帧ID为29位,对应的掩码为0x1FFFFFFF)提供了一系列实用的命令行工具,可以方便的调试CAN总线数据。这里主要记录各个工具的用法。然后回车可以打印出该工具的详细用法。

2024-03-08 15:45:13 1837

原创 STM32 HAL库 串口使用问题记录

多数应该出现在未开启DMA模式使用中断方式接收数据的情况,程序比较容易触发ORE错误引起频繁进入串口中断导致的假死现象。解决方法:在串口错误中断中清除错误标志后,要重新开启串口中断接收。对于该种情况可以参考。

2024-03-02 15:07:08 623

原创 STM32F4 HAL库串口死锁问题调试记录

STM32F4 HAL库串口死锁问题调试记录

2024-03-02 13:57:29 929

原创 通过热敏电阻计算温度(三)---Marlin实现分析

通过热敏电阻计算温度(三)---Marlin实现分析

2023-10-24 14:04:57 404

原创 通过热敏电阻计算温度(二)---ODrive实现分析

ODrive计算热敏电阻的温度采用的时B值的方式计算的。首先根据公式计算出一系列的温度和测量点电压比例的点,然后通过多项式拟合曲线,得到三阶多项式的系数。函数用于对一组数据采用最小二乘法进行多项式拟合,返回值为多项式系数,deg表示多项式的阶数。在MotorControl->utils.hpp文件中根据多项式系数计算温度的函数。c表示多项式系数,用于根据多项式系数生成多项式(这里介绍的是仅有一个参数的情况)函数可以的得到原始的温度数据。为根据adc的值转化过来的0-1之间的值。存储了多项式的系数,

2023-10-23 20:09:18 596

原创 通过热敏电阻计算温度(一)---理论篇

通过热敏电阻计算温度

2023-10-21 18:35:07 2010

原创 结构体嵌套问题笔记

结构体相互嵌套

2023-10-18 15:51:21 198

原创 Keil MDK环境下FreeModebus移植踩坑记录

移植FreeModbus环境配置踩坑记录

2023-08-04 19:18:28 373

原创 Keil环境下CANopenNode移植到STM32问题记录(二)---堆空间设置大小

CANopenNode中使用了alloc函数来申请堆空间内存,可能会用到比较大的堆空间,后续可以详细看看。通过cubeMX默认生成的工程中堆空间的大小,运行程序时会进入hardfault。将堆空间设置为0x1000时仍不能正常运行,当设置为0x2000时才能够正常运行。

2023-07-07 19:23:21 563

原创 Keil环境下CANopenNode移植到STM32问题记录(一)---printf重定向问题

Keil环境下CANopenNode移植到STM32问题记录

2023-07-07 18:56:27 1527 1

原创 ARM半主机模式介绍

ARM半主机模式介绍

2023-07-07 16:27:39 631

原创 Ubuntu 16.04 安装Arduino ESP32开发环境记录

Ubuntu16.04 安装Arduino ESP32开发环境记录

2023-07-05 11:55:07 999

原创 ESP32通过Arduino导出编译bin文件并进行量产烧录

ESP32通过Arduino导出编译bin文件并进行量产烧录

2023-07-04 11:48:35 7635

原创 CRC学习笔记

NAME:参数模型的名称WIDTH:宽度,即CRC比特数POLY:多项式的简写,以16进制表示,省略最高位的1INIT:CRC初始值,REFIN:true/false,表示原始数据是否进行翻转REFOUT:true/false,计算之后,异或输出之前,整个数据是否按位翻转。XOROUT:计算结果与次之异或后得到最终的CRC值CRC算法名称多项式公式宽度多项式初始值结果异或值输入反转输出反转CRC-4/ITUx4 + x + 14030000true。

2023-06-17 18:43:08 915

原创 CANopen SDO下载

CANopen SDO 下载

2023-06-17 12:55:56 427

原创 CANopenNode学习笔记(一)--- README翻译

CANopenNode 是免费开源的CANopen协议栈。CANopen是建立在CAN基础上的用于嵌入式控制系统的国际标准化(EN 50325-4) (CiA301)高层协议。有关CANopen的更多信息,请参见http://www.can-cia.org/CANopenNode是用ANSI C语言以面向对象的方式编写的。它运行在不同的微控制器上,作为裸机应用或带RTOS应用。通信变量、设备变量、自定义变量收集在CANopen对象字典中,可以从C代码和CANopen网络访问。

2023-04-01 16:09:38 1805 2

原创 Modbus资料收集

ucos全家桶中的modbus协议栈。

2023-04-01 13:31:46 173

原创 CANopen资料收集

CIA官网canopen说明: https://www.can-cia.org/canopenhttps://canfestival.org/index.html.enhttps://github.com/CANopenNode/CANopenNode主页:https://www.embedded-office.com/products/canopen-stack源码链接:https://github.com/embedded-office/canopen-stack

2023-04-01 13:18:26 800

原创 无刷电机常用的磁性编码器资料收集

无刷电机常用的磁性编码器资料收集

2022-12-31 11:39:48 1010

CRC32两种计算法对比测试

crc32计算法测试

2024-07-02

MAP文件分析Rdrive.map

分析使用的map文件

2024-05-24

vscode_stm32f411.rar

vscode开发STM32的工程,具有编译、下载、调试功能。搭建过程也可参考:https://blog.csdn.net/xiaoyuanwuhui/article/details/116301416

2021-04-30

STM32F4_ROS.rar

STM32F407移植rosserial 通过USB虚拟串口和ROS系统进行通信,内部包含简单的发布测试例程。

2019-07-31

Stm32f103_超声波模块测试_利用外部中断.rar

stm32驱动HC-SR04超声波模块测距的中断例程,PA4->Trig,PA5->Echo 串口1打印测量距离。

2019-07-29

STM32编码器模式测试例程

STM32编码器模式的测试例程,代码中采用TIM2定时器的编码器模式,在主程序中利用延时函数监测单位时间内的脉冲数,并根据脉冲数计算速度。程序中不包含电机输出控制和PID调速。

2018-11-19

stm32驱动舵机

STM32驱动舵机转动的测试程序,程序中使用定时器1的pwm输出比较模式。

2018-11-14

WS2812驱动程序(SPI+DMA)

STM32通过硬件SPI+DMA方式驱动WS2812灯珠的驱动程序,其中移植了Adafruit_NeoPixel库函数可以实现多种显示效果。main函数中保留了各种样式的测试函数,只需在头文件中配置灯珠个数,将控制引脚接到PA7即可。目前测试过程中未发现明显bug,若有问题欢迎指出!

2018-10-28

MAX6675中文数据手册

MX6675芯片的中文数据手册,其中的重点部分作了高亮标记。

2018-08-16

STM32驱动max6675测温的测试例程

STM32F103 驱动max6675模块测量k型热电偶温度的测试例程。用到的资源有串口1和SPI1

2018-08-16

基于STM32单片机的指纹识别模块的测试代码

基于深圳十指科技公司出品的TFS-M64指纹识别模块的STM32测试代码,为了测试方便直接从原子例程中修改的。通过串口2与指纹模块通信,程序中封装了指纹模块的操作函数库。main.c文件中包含了许多之前测试的代码。

2018-08-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除