
单片机
文章平均质量分 65
我系xun悟空
物联网、嵌入式、电子电路制作经验分享和教程笔记www.armfun.cn
展开
-
(九)Proteus仿真STM32单片机硬件I2C和模拟I2C读写PCF8563时钟
【代码】九)Proteus仿真STM32单片机硬件I2C和模拟I2C读写PCF8563时钟。原创 2024-10-27 11:05:01 · 793 阅读 · 1 评论 -
复数和四元数
复数主要用于二维空间中的旋转和振荡现象,而四元数则在三维空间中提供了一种高效且稳定的旋转表示方法。使用四元数进行旋转操作相比于欧拉角和旋转矩阵,具有更高的效率和更好的数值稳定性,尤其在连续旋转和动画过渡中。在虚拟现实(VR)和增强现实(AR)系统中,四元数用于跟踪和表示用户的头部和设备的方向。通过理解复数的基础,进一步掌握四元数的定义、运算规则及其几何意义,可以为解决复杂的空间旋转和方向控制问题提供有力的工具和方法。四元数在物理模拟中用于描述刚体的旋转状态,确保了模拟过程中的物理一致性和计算效率。原创 2024-10-24 18:12:36 · 1148 阅读 · 0 评论 -
互补滤波(Complementary Filtering)原理
陀螺仪可以提供高频的角速度数据,但会产生长期漂移误差(即积分过程中累积误差)。加速度计可以提供重力方向的低频信息,但它容易受短期噪声(如振动)的影响。利用陀螺仪的短期精度和加速度计的长期稳定性来实现准确的姿态估计。互补滤波是一种简单且有效的滤波方法,适用于结合不同频率特性的数据,特别适合传感器融合和姿态估计。通过合理设置加权因子,可以在实时应用中达到平滑和准确的效果。原创 2024-10-24 18:11:02 · 1301 阅读 · 0 评论 -
Clarke变换和Park变换及逆变换详解
Clarke变换和Park变换是电机FOC控制的关键工具,帮助将三相交流电机的电流和电压从静止坐标系转换到旋转坐标系,进而实现对电机磁通和转矩的精确解耦控制。逆变换则用于将控制结果再转换回三相电流,用于驱动电机。在实际应用中,这种变换极大简化了电机控制算法,使得电机的高性能和高效率控制成为可能。原创 2024-10-24 18:09:29 · 4548 阅读 · 1 评论 -
开源的 FOC(Field-Oriented Control) 项目
以下是一些著名的开源 FOC 项目,它们提供了实现电机矢量控制的工具,并支持定制和扩展。简介: VESC(Vedder's Electronic Speed Controller)是由 Benjamin Vedder 开发的开源电调项目,广泛应用于无刷电机的控制,特别是电动滑板和电动自行车等项目。虽然它主要是为 STM32 开发的,但库是开源的,可以在其他支持 FOC 控制的硬件上运行。这些项目都有广泛的社区支持,并且提供丰富的文档和示例,帮助开发者快速实现自己的 FOC 电机控制系统。原创 2024-10-19 17:35:12 · 2045 阅读 · 3 评论 -
(八)Proteus仿真STM32单片机GPIO驱动数码管
2,修改驱动函数,数组seg[14]前10个是0-9数字的编码,后四个是空格,点,横线,下划线。1,参考上篇,将LED点阵屏更换成数码管如下图。原创 2024-10-10 15:02:29 · 1748 阅读 · 0 评论 -
(五)Proteus仿真STM32单片机串口数据流收发
1,打开STM32CubeMX,找到USART1,配置模式Asynchronous,此时PA9、PA10自动变成串口模式。7、配置”COMPIM“选择物理串口,并配置物理串口和单片机端虚拟串口的波特率等参数。6、Protues仿真使用电脑物理串口,搜索添加器件”COMPIM“,并如图连接。串口默认参数:115200bps 8bit None 1stop。2,NVIC Settings使能收发中断。4,接收固定长度数据。5,接收可变长度数据。原创 2024-10-07 18:46:37 · 1778 阅读 · 0 评论 -
(四)Proteus仿真STM32单片机使用定时器控制LED
再上一篇文章中,我们使用HAL_Delay()函数实现延时切换灯的状态,是非常糟糕的代码设计模式,在CubeMX生成的代码中,默认已经启动了系统定时器,定时中断1毫秒。在main.c文件中增加一个变量led_delay和 HAL_IncTick函数如下,可以在keil项目中搜索这个函数,这样函数原来定义的地方有__weak前缀,代表函数可以重写,HAL_Delay()用到了uwTick,所以重新时保留原来的代码,增加led_delay++;相比之下,定时器可以解决上述问题,并提供更灵活和精确的时间控制。原创 2024-10-07 18:44:37 · 1045 阅读 · 0 评论 -
(三)Proteus仿真STM32单片机控制LED灯程序设计
8,使用keil打开项目代码,在main.c文件增加4行如下代码,注意个人代码放入USER CODE BEGIN和USER CODE END之间可以让CubeMX重新生成代码时保留,编译即可生成hex可执行文件。7,配置代码输出信息,点击Project Manager,设置项目名称,存储路径,Toolchain/IDE选择Keil MDK-ARM,点击GENERATE CODE 生成代码。6,注意,如果程序需要在实物开发板上运行,一定要打开调试口!4 ,如下图点击PB0,修改为GPIO_Output。转载 2024-10-07 18:43:42 · 696 阅读 · 0 评论 -
STM32 微控制器上使用 硬件 CRC
STM32 微控制器上使用 硬件 CRC原创 2024-09-23 16:11:37 · 894 阅读 · 0 评论 -
(六)Proteus仿真STM32单片机控制8x8LED显示
4,定义显示的图形,并且每次调用更换图形,此函数需要定时100ms以上调用一次,防止图形切换太快影子重叠。2,GPIOA负责8bit数据,高电平有效,GPIOB负责行选则,低电平有效,编写行刷新函数。1,配置CUBEMX,将PA0~7,PAB0~7配置为GPIO OUTPUT模式。原创 2024-09-22 13:19:27 · 964 阅读 · 0 评论 -
电脑串口和手机蓝牙BLE串口数据包通信调试工具
电脑串口和手机蓝牙BLE串口数据包通信调试工具原创 2024-09-20 09:30:39 · 964 阅读 · 0 评论 -
串口通信数据包介绍和包结构定义实例
开头长度命令数据CRC校验结尾FF AA2字节2字节N字节(0~200)2字节无结尾波特率:115200 无校验位 8位数据位 1位停止位数据格式:大端模式CRC校验:CRC-16-CCITT-FALSE 多项式x16+x12+x5+1(0x1021),初始值0xFFFF,低位在后,高位在前,结果与0x0000异或举例:FFAA 0001 0102 88 04F3 代表包命令是0x0102,包长度是1字节,数据是0x88,校验0x04F3CRC在线计算。原创 2024-09-13 16:03:32 · 986 阅读 · 0 评论 -
(一)STM32单片机仿真开发环境Keil+STM32CubeMX+Proteus安装
STM32单片机仿真开发环境Keil+STM32CubeMX+Protues安装原创 2024-09-13 15:59:19 · 1876 阅读 · 0 评论 -
(二)Proteus仿真STM32单片机控制LED灯硬件设计
protues stm32 keil 入门教程转载 2023-12-30 18:02:55 · 1670 阅读 · 1 评论 -
lvgl v8.3 windows仿真
lvgl v8.3 windows仿真原创 2024-06-24 16:07:11 · 557 阅读 · 0 评论 -
20块钱就能搞定的FOC无刷电机控制方案!miniFOC
20块钱就能搞定的FOC无刷电机控制方案!miniFOC原创 2024-06-13 10:57:31 · 1912 阅读 · 3 评论 -
PowerWatch 自制迷你USB 电源功率计
PowerWatch 自制迷你USB 电源功率计原创 2024-06-13 10:46:21 · 897 阅读 · 0 评论 -
STM32无法烧写程序的故障排除
STM32无法烧写程序的故障排除原创 2024-06-12 14:40:25 · 4035 阅读 · 0 评论 -
esp32c3刷micropython固件说明
esp32c3 刷 micropython 固件原创 2024-06-06 11:34:25 · 452 阅读 · 0 评论 -
Keil编译bin格式固件方法
Keil编译bin格式固件方法原创 2024-06-05 08:54:39 · 329 阅读 · 0 评论 -
PCF8563转STM32 RTC避坑指南
PCF8563 STM32 时间错误原创 2024-01-12 12:04:10 · 989 阅读 · 1 评论