- 博客(29)
- 资源 (6)
- 收藏
- 关注
原创 开源自制差分霍尔电流传感器模块——2025.03.25
以下是使用此模块测得的步进电机低速相电流波形,两张图分别是驱动器RMS电流1.6A和3.5A时的波形。为了使模块输出更准确,建议OUT和VZCR都接入ADC采集和计算。其中0.400是灵敏度,其他型号的灵敏度请参考规格书。使用MIT License,请自觉遵守开源协议。因为模块的5V供电电压精度可能较低,此时如果。按照理论值计算会导致最终结果出现较大偏差。
2025-03-25 11:25:49
703
原创 [EtherCAT]Win10、Win11中SOEM1.4.0无法找到从站的解决方法——2024.07.16
在Win10和Win11系统中,使用TwinCAT3可以正常找到从站并连接,但换用SOEM后始终无法找到从站,换网卡换驱动均无法解决。尝试更换电脑或系统后恢复正常。
2024-07-16 18:26:47
881
1
原创 CH32V305的高速USB2.0 CDC串口速度测试(很快啊)——2023.11.29
CH32V305作为CDC串口设备与电脑连接,并向电脑循环发送数据,每次发送8192字节。电脑端用python脚本打开串口循环读数据,读到一定数量后关闭串口并计算时间和速度。由于pyserial一次写大量数据很麻烦,所以为了方便测试就只做了电脑端读数据的测试。
2023-11-29 19:54:30
2598
4
原创 如何用VS Code做简单的文件内容对比——2022.12.19
我们在写代码的过程中经常需要对比各种不同的文件,VS Code本身就有一个文本比较功能,经常用VS Code的话可以很方便的用起来。
2022-12-19 15:35:05
6134
原创 亲测可用的RT1052+FreeRTOS10.3移植CmBacktrace方法——2022.11.12
搜遍全网都找不到一个靠谱的RT1052可用的移植方法,自己弄了一个分享出来。
2022-11-12 16:24:22
1813
7
原创 单片机没有随机数发生器如何生成随机数——2022.07.26
有时项目中需要用到随机数,但并不是每种单片机都有真随机数发生器,如何在没有随机数发生器的单片机中生成随机数呢?这里分享两种单片机产生随机数的方法,这些也是我在项目中经常会用到的。...
2022-07-26 09:50:20
1942
原创 [W806捣鼓手记]FPU性能简单测试——2022.05.23
浮点单元作为 E804 的可配置硬件单元,旨在提升 E804 面向浮点应用的处理能力。E804 浮点单元提供了一种低成本、高性能的硬件浮点实现。浮点单元支持 IEEE-754 浮点标准中的单精度浮点运算,实现了 16 个单精度浮点寄存器。在系统软件支持下,E804可实现对双精度浮点运算的支持。浮点单元的体系结构与编程模型的主要特点如下:- 完全兼容 ANSI/IEEE Std 754 浮点标准(系统软件支持下);- 仅支持单精度浮点运算;- 支持向零舍入、向正无穷舍入、向负无穷舍入和就近舍入
2022-05-23 18:52:05
1945
10
原创 keil5.36设置GB2312编码后无法修改字体的解决方法——2022.04.04
问题描述keil5.36的编辑器默认是ANSI编码,此时字体正常但无法输入中文,当修改为GB2312编码后中文输入正常,但字体变成类似宋体的样式,且无法修改字体。解决方法方法1选择非等宽且包含中文的字体。方法2原因猜测经测试,keil可以选择的monospaced等宽字体中,有一部分字体是可以在GB2312编码下正常使用的。猜测此问题可能与选择的字体文件有关,......
2022-04-04 17:32:21
13083
15
原创 STM32CubeIDE用DAP调试的超级无敌简单方法——2022.01.07
STM32CubeIDE作为ST生态中重要的一环,必然以支持自家的ST-LINK为第一要务。不过当我们手上没有ST-LINK只有其他调试器时也是可以debug和下载的,只需要做一丢丢的简单操作,下面这个方法个人觉得比网上大多数方法都要简单很多,不需要IDE外部的openocd喔。......
2022-01-07 19:09:26
16145
32
原创 [W806]CoreMark跑分测试——2021.12
这里就简单贴个跑分结果,CoreMark的简介和具体移植步骤就不写了,网上已经很多了,对移植感兴趣的可以参考STM32F7的官方移植教程,这里直接放结果。测试平台W806核心板 - 频率:240M - 优化等级:-O3 - 迭代次数:20000次 - 开发平台:CDK - 编译器:GCC 6.3.0测试结果
2021-12-28 16:21:46
1831
原创 STM32F407的PH10无法响应外部中断的解决方法——2021.12
问题STM32F407IG的PH10引脚配置为外部中断输入时,无法正常触发中断,相邻的PH11 PH12正常。解决办法向SYSCFG_EXTICR1寄存器和SYSCFG_EXTICR3寄存器写入0x0111即可。局限性此方法会导致PI10和PI2无法响应外部中断,具体原理如下:参考资料es0182-stm32f405407xx-and-stm32f415417xx-device-limitations-stmicroelectronics.pdf...
2021-12-20 08:49:46
1325
原创 [EtherCAT]在ubuntu18.04中编译并使用开源主站SOEM1.4.0——2021.09
[EtherCAT]如何在Windows中编译并使用开源主站SOEM 1.4.0——2021.08获取源码在github上获取.zip格式源码,目前master分支默认是最新的1.4.0。https://github.com/OpenEtherCATsociety/SOEM如果需要其他版本到这个网址里找,不过源码包是.tar.gz格式https://openethercatsociety.github.io/编译解压下载好的源码,在根目录里有个README.md,打开可以看到里面有linux系
2021-09-07 20:53:48
3502
26
原创 [EtherCAT]在Windows中编译并使用开源主站SOEM 1.4.0——2024.07.16
前置工作SOEM在windows系统中通过WinPcap组件获取EtherCAT数据包以及和底层网卡交互,所以要先安装WinPcap。在这个网址下载:https://www.winpcap.org/,然后安装就是直接一路点next。获取源码装完WinPcap之后就可以开始SOEM的操作了,首先在github上获取源码https://github.com/OpenEtherCATsociety/SOEM编译使用...
2021-08-23 11:57:00
9408
56
原创 RT1052串口DMA接收不定长数据——2021.07
目录主体思路硬件平台软件实现参考资料RT1052虽然外设架构与STM32完全不同,但是对于串口接收不定长数据来说,思路其实都是一样的,都是利用串口的空闲中断+DMA来实现。当然不定长数据的接收肯定不止这一种方法,这里只记录其中一种。由于串口空闲中断+DMA接收不定长数据原理的介绍在网络上已经非常多了,这里不打算讲解原理,只介绍此方法在RT1052中的实现过程。主体思路初始化串口,使能串口空闲中断,按需求配置空闲检测位置和长度配置DMA,使能串口DMA接收,如果需要DMA发送则使能DMA发送启动
2021-07-05 12:00:04
3020
1
原创 记录一次AT32串口DMA+空闲中断开发中的问题及解决方法——2021.06
项目开发中使用AT32F415的串口DMA+空闲中断接收不定长数据,由于AT32的库类似STM32的标准库,外设的使用上并没有STM32 HAL库那么方便直接一个函数搞定,收发处理需要自己写。网上有非常多的STM32标准库的串口DMA+空闲中断接收不定长数据代码,直接搬过来,但实际上碰到了一些问题,并不能直接用。主要遇到的问题:串口的帧错误标志位被置1触发空闲中断后DMA只传了1个字符串口助手返回的前几个字符不对回环测试中收发字符数不相等解决方法:对于第一个问题,帧错误标志位被置1说明串
2021-06-26 11:55:13
2950
4
原创 [emWin]利用内存设备加速PNG图片显示——2021.03
本文为作者原创,如需转载请在醒目位置标明原始出处,并提供可访问的超链接。上一篇博客中讲了[emWin]利用内存设备加速GIF图片显示,那么这一篇来讲一下同样的方法加速PNG图。实现原理emWin的PNG显示原理是用户程序调用GUI_PNG_Draw()绘制函数来解码和显示,并且是只在调用以后才开始解码,这就导致一些高性能的MCU在显示大量小尺寸PNG时出现卡顿、掉帧等等现象。如果开始显示之前就把整个文件全部解码完,显示的时候只显示解码后的图像,就能显著改善PNG图的显示速度,利用emWin的内存设备
2021-03-27 22:45:56
1061
原创 一种超简单的FreeRTOS移植方法——2021.03
无意中发现的一个通过Keil5来实现超简单移植的方法,真的非常简单方便,再也不用手动拖文件了,甚至还有专门的rtos调试工具可以用。
2021-03-22 10:48:58
8024
5
原创 [emWin]利用内存设备加速GIF图片显示——2021.03
emWin的GIF显示原理是用户程序调用GUI_GIF_DrawSub()绘制函数一帧一帧的解码和显示,并且每一次GUI_GIF_DrawSub()只解码一帧画面,这就导致一些高性能的MCU在显示一些小尺寸GIF时效果都会很差。如果开始显示之前就把整个文件全部解码完,显示的时候只显示解码完的图像,就能显著改善GIF图的显示速度,利用emWin的内存设备可以实现这个功能。...
2021-03-22 09:23:23
3714
5
原创 在emWin中使用矢量图标字体——2020.11
效果图先上一张效果图使用方法emWin中图标字体的使用方法其实很简单,因为这种图标是用ttf字库的形式保存的,所以只要硬件平台的RAM空间支持emWin ttf字库的显示,就可以直接用。显示的方法也很简单,直接调用字符串显示函数即可,这里简单说一下使用方法。获取图标字体想要显示图标字体,那首先肯定要能获得图标资源,目前我知道的图标字体网站有两个,一个是阿里巴巴矢量图标库,还有一个是Font Awesome。阿里的图标样式是最丰富的,单色彩色都有,还可以下载png、svg和a.
2020-11-19 15:59:14
1277
原创 用emWin的2D绘图函数画一个带圆形端点的环形进度条
先上效果图,首先是顺时针转:然后是逆时针转:大概讲一下思路吧,首先讲一下顺时针是怎么弄的,很简单。画圆弧函数GUI_DrawArc有起始角度a0和终止角度a1两个参数,且a0必须小于a1否则无法显示,而且这个函数的角度正方向又是逆时针的,这就容易造成一个误解,以为起始角度a0和终止角度a1的值只能从0°逆时针增加到360°这么一个变化,换句话说,在a0不变时通过增加a1的值可以...
2020-02-27 21:55:25
2970
2
原创 记录一次在Ubuntu18.04下的VSCode C/C++编译环境配置过程——2019年1月
2019-03-14更新Linux版VScode中,cpptools的BUG已经修复,将externalConsole设置为True后,可以正常使用系统终端来调试程序了。前置工作(非必须)在ubuntu中安装gcc和g++编译器sudo apt install gccsudo apt install g++一、插件安装在VScode的扩展商店里搜索C/C++,...
2019-01-21 15:46:10
25435
16
原创 不使用Ultra Liberarion软件导出BXL文件的方法
Ultra Liberarion官方提供了一个网页版的在线BXL阅读器和导出工具,不需要安装任何软件即可导出BXL文件。 首先进入在线BXL阅读器,链接在这:https://app.ultralibrarian.com/UploadBXL然后需要注册一个账号 注册好账号并登陆之后就可以开始使用这个工具了。在这里上传你想要导出的BXL文件下面是上传成功后...
2018-11-21 13:39:53
1428
2
原创 记一次在64位Ubuntu 16.04下成功安装arm-none-eabi-gcc交叉编译器的过程
2018.07.28刚开始在网上找了很多教程,都是大同小异的步骤:在官网下载arm-none-eabi-gcc的.tar.bz2压缩包 解压到自定义目录 打开.bashrc和.profie添加环境变量和路径 生效更改 查询编译器是否配置成功上面的安装步骤我试了很多种都没成功,后来我发现可以通过终端自动下载安装。下面是安装步骤:在进行安装前需要一个前置条件,ubuntu的系...
2018-07-28 10:37:45
11333
1
转载 转:侃侃单片机裸奔的程序框架
以下内容转载自21IC中国电子网论坛的帖子:侃侃单片机裸奔的程序框架http://bbs.21ic.com/icview-237577-1-1.html大家来侃侃单片机的裸奔程序的框架呀!以下是我总结的一些东西,不合乎之处来请大家指点呀,本人第二次在21ic发帖,希望大家鼓励鼓励呀!!从07年参加全国大学生电子设计大赛初次接触单片机开发至今已经有4年了,初学单片机时,都会纠结于其各个模块功能的应用...
2018-07-14 23:07:24
878
原创 使用STM32F103采集Si7021温湿度传感器数据
使用STM32F103采集Si7021温湿度传感器数据2019.06.13 更新最近弄了个GitHub仓库,想要下载源码但又不想弄积分的朋友可以直接到我的GitHub上克隆https://github.com/ZZZ-XXJ/Si7021-STM32F103.git此采集程序是跑在STM32F103C8T6上的,模拟IIC接口读取数据,每50ms采集一次数据,每隔1s通过串口1发送...
2018-07-06 22:40:04
14513
3
原创 如何解决因CC2530重复触发串口回调函数导致程序卡死的问题
原因:当使用CC2530的串口时,协议栈会生成一个串口发送事件,在执行该事件的时候也会触发相应的串口回调函数,导致回调函数被重复调用。 解决方法:在_hal_uart_dma.c文件中找到static void HalUARTPollDMA(void)函数,然后找到if (dmaCfg.txMT)语句,将这个判断语句注释掉,即可解决回调函数重复调用问题。 详...
2018-05-21 11:29:09
1274
原创 CC2530学习笔记(3)—— IO端口中断机制
CC2530学习笔记(3)—— IO端口中断机制通用I / O中断配置为输入的通用I / O引脚可用于产生中断。 中断可以配置为在外部信号的上升沿或下降沿触发。 每个P0,P1和P2端口具有端口中断使能位,位于IEN1-IEN2寄存器中的端口内的所有位都是公共的,如下所示:•IEN1.P0IE:P0中断使能•IEN2.P1IE:P1中断使能•IEN2.P2IE:P2中断使能除了这些通用中断使能之外...
2018-02-22 20:50:39
2298
原创 CC2530学习笔记(2)—— IO端口基本操作实验(按键控制亮灯)
CC2530学习笔记(2)—— IO端口基本操作(按键控制亮灯)关于CC2530的IO端口基本知识、IO端口有关寄存器的介绍和描述请参照:CC2530学习笔记(1)—— IO端口电路原理图如图1所示:图1 按键和LED灯电路连接原理图分析:本操作中不涉及IO端口中断,采用轮询方式实现操作。要求按一个按键亮一个灯,再按键灯熄灭。所以我们需要及时的检测按键是否被按下。原理图中两个LED当IO端...
2018-02-22 17:47:24
5743
2
原创 CC2530学习笔记(1)—— IO端口
CC2530学习笔记(1)—— IO端口CC2530是针对IEEE 802.15.4,Zigbee和RF4CE应用的真正片上系统(SoC)解决方案。 它能够以非常低的总物料成本构建强大的网络节点。 CC2530将领先的射频收发器的卓越性能与业界标准增强型8051 MCU,系统内可编程闪存,8 KB RAM以及许多其他强大功能相结合。 CC2530有四种不同的闪存版本:分别为CC2530F32 /...
2018-02-11 22:27:31
23499
2
LCD12864驱动代码
2018-07-04
Si7021温湿度STM32F1读取程序
2018-07-04
基于ZigBee协议栈的DHT11驱动-亲测可用
2018-02-24
基于51单片机的电子日历册
2018-02-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人