- 2025-04-15
-
回复了主题帖:
【电机X-NUCLEO-IHM16M1和NUCLEO-G431】第三篇MCSDK Profiler 电机跑起来测试
秦天qintian0303 发表于 2025-4-13 10:58
直接这类电机驱动就可以快速驱动了,主要是配置文件这些能导出来不?
你说的是代码 能不能导出来的意思吗》
他这个分好几个软件,这个是用来调试电机参数的,然后把电机参数输入到另外一个软件里,生成控制代码
- 2025-04-08
-
发表了主题帖:
【电机X-NUCLEO-IHM16M1和NUCLEO-G431】第三篇MCSDK Profiler 电机跑起来测试
本帖最后由 常见泽1 于 2025-4-11 19:25 编辑
之前用过MCSK的5.0版本
继续安装了,发现找不到IHM16M1和G431的板子的,得重新下载新的版本
网路上搜索后发现,至少要5.4的版本才支持
下载了5.4.8的版本安装
安装后如下图所示
Motor Profiler是ST MotorControl Workbench中的一个工具,用于辨识电机的参数
把电机板和G431板上下插入
接上电机的三根线
连接电源,12V
G431的USB口接入电脑
打开软件
填好参数后,点击connect
运行结果
运行效果看看
[localvideo]776a10a8a10461fb02a34335f0193720[/localvideo]
- 2025-03-30
-
发表了主题帖:
【电机驱动板X-NUCLEO-IHM16M1和NUCLEO-G431RB】第2篇 串口printf
一串口介绍
串口是一种应用十分广泛的通讯接口,可以实现两个设备的相互通讯。USART(通用同步异步收发器)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。有别于 USART 还有一个UART,它是在 USART 基础上裁剪掉了同步通信功能,只有异步通信
二工程配置
内部时钟配置成170M
看下串口是用的哪两个脚
这里一定要注意,如果你用cubemx配置lpuart1,管脚的话默认是PE口的,这边VCP的串口管脚是PA2 PA3
配置完成,输出KEIL
KEIL工程里配置
添加代码
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&hlpuart1, (uint8_t *)&ch, 1, 0xfff);//
return ch;
}
printf("welcome to G4!");
实验测试结果
-
发表了主题帖:
【电机驱动板X-NUCLEO-IHM16M1和NUCLEO-G431RB】第一篇 G431环境搭建和GPIO LED灯p...
本帖最后由 常见泽1 于 2025-3-30 12:45 编辑
STM32G4基本环境搭建 LED灯先跑
首先使用CUBE来创建G4的工程
选择相应的型号
看下原理图时钟部分
看下LDO LED显示部分原理图
生成工程
因为之前没用过G4,所以没有G4的软件库得下载一个
安装G4的KEIL PACK包
添加代码
实验现象LED闪烁,完成
- 2025-03-28
-
回复了主题帖:
邀你聊一聊:学习MCU的正确方法和你的学习之路
STM32 学习资料多,而且CUBE现在也比较友好,可以看看网上视频就能入门
- 2025-03-26
-
回复了主题帖:
>>征集 | 晒电机控制痛点与难题,一起寻求最优解!
主要现在的无位置传感器电机控制感觉难度增加很多
特别是低速时容易噪声干扰,还有就是硬件设计EMI之类很难
-
回复了主题帖:
【STM32H7S78-DK测评】第8篇 touchgfx做一个视频播放器
freebsder 发表于 2025-3-25 11:13
之前流行的是emwin吧,现在touchgfx串起来了?要钱不?
不要钱,做点小东西很方便,不知道实际做项目用起来咋样
- 2025-03-25
-
回复了主题帖:
【STM32H7S78-DK测评】第8篇 touchgfx做一个视频播放器
秦天qintian0303 发表于 2025-3-22 10:10
STM32H7S78-DK可以直接用touchgfx基于开发板创建,这样就避免一些外设不匹配问题
是的 用touchgfx真的太方便了 菜鸟入门必选
- 2025-03-21
-
发表了主题帖:
【STM32H7S78-DK测评】第8篇 touchgfx做一个视频播放器
打开touchgfx软件
新建一个screen
插入video
默认的是有几个example的视频的例如下面
可以不选择默认的视频,重新导入一个video,貌似只支持AVI格式的视频
电脑里目前缓存的大部分都是mp4格式 的文件
AVI的比较少,好不容易找到了一个
插入两个button
插入两个interaction事件
一个是PASUE video
一个是play video
生成code
下载运行
运行结果
1.默认的模板视频播放器
[localvideo]e68f169eec62de2e3a5a98f3a68e4180[/localvideo]
2.导入的视频播放器
[localvideo]5d349471cc22a492b3aa963f0ec52ebe[/localvideo]
- 2025-03-20
-
发表了主题帖:
【STM32H7S78-DK测评】第7篇 touchgfx初体验
首先安装touchgfx软件
我之前安装了 4.10感觉用不起来
现在换了4.25目前可以
点击Create创建工程
添加控件
生成代码下载
下载失败
提示cubeprogrammer未安装
于是又下载CUBEPROG安装
切记:CUBEPROGRAMMER必须要安装在默认路径里面,千万不要换目录,不然还是下载不成功
看提示
观看显示结果
[localvideo]5c919401957efbd6d3e23e18f1231070[/localvideo]
- 2025-03-18
-
回复了主题帖:
【2024 DigiKey大赛参与奖】开箱帖
秦天qintian0303 发表于 2025-3-18 08:42
小板子是什么型号的?
应该是F729 记不太清了
实在不知道买点啥
- 2025-03-17
-
发表了主题帖:
【STM32H7S78-DK测评】第6篇 图片切换显示
打开LCD Image Converter软件
开始转换成数组
生成h文件,从h文件里复制出数组到工程里
初始化函数
static void MX_LTDC_Init(void)
{
/* USER CODE BEGIN LTDC_Init 0 */
/* USER CODE END LTDC_Init 0 */
LTDC_LayerCfgTypeDef pLayerCfg = {0};
/* USER CODE BEGIN LTDC_Init 1 */
/* USER CODE END LTDC_Init 1 */
hltdc.Instance = LTDC;
hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
hltdc.Init.HorizontalSync = 3;
hltdc.Init.VerticalSync = 3;
hltdc.Init.AccumulatedHBP = 11;
hltdc.Init.AccumulatedVBP = 11;
hltdc.Init.AccumulatedActiveW = 811;
hltdc.Init.AccumulatedActiveH = 491;
hltdc.Init.TotalWidth = 819;
hltdc.Init.TotalHeigh = 499;
hltdc.Init.Backcolor.Blue = 0;
hltdc.Init.Backcolor.Green = 0;
hltdc.Init.Backcolor.Red = 0;
if (HAL_LTDC_Init(&hltdc) != HAL_OK)
{
Error_Handler();
}
pLayerCfg.WindowX0 = 0;
pLayerCfg.WindowX1 = 800;
pLayerCfg.WindowY0 = 0;
pLayerCfg.WindowY1 = 480;
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_ARGB8888;
pLayerCfg.Alpha = 127;
pLayerCfg.Alpha0 = 0;
pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;
pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA;
pLayerCfg.FBStartAdress = (uint32_t)&image_data_1;
pLayerCfg.ImageWidth = 800;
pLayerCfg.ImageHeight = 480;
pLayerCfg.Backcolor.Blue = 0;
pLayerCfg.Backcolor.Green = 0;
pLayerCfg.Backcolor.Red = 0;
if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN LTDC_Init 2 */
/* USER CODE END LTDC_Init 2 */
}
实现功能
通过软件生成多张图片的数组,每5S切换显示的相册图片
查看显示结果
[localvideo]d28a2f8945d99ff66b27e21faddbf6af[/localvideo]
-
发表了主题帖:
【2024 DigiKey大赛参与奖】开箱帖
得捷的商品终于邮寄到了,实在不知道买点啥,就买几个板子玩玩吧
其实我东西比较少,箱子是真大
打开箱子
看到两个板子
- 2025-03-11
-
回复了主题帖:
从某研究所学到的硬件保命小技巧
是不是可以一键全部练出来
- 2025-03-07
-
回复了主题帖:
测评入围名单: 电机驱动板X-NUCLEO-IHM16M1和NUCLEO-G431RB
已查看我的测评计划,可在活动期间内完成并发帖分享
- 2025-03-03
-
回复了主题帖:
《Linux内核深度解析》第6章 文件系统学习
Jacktang 发表于 2025-3-2 09:30
Linux系统中,理解文件系统管理的看来很重要。
是的 非常重要 离不开文件系统
- 2025-03-01
-
发表了主题帖:
《Linux内核深度解析》第6章 文件系统学习
第六章 文件系统
文件系统的基本数据单位是文件,它主要是对磁盘上面的文件进行组织管理,组织的方式不同,形成的文件系统也会不同。
在Linux中,文件和目录,块设备、管道、socket等等,都是由文件系统管理的。在Linux中的文件系统会给每个文件分配两个数据结构:索引节点(index node)和目录项(directory entry),它们都主要是被用来记录文件的元信息和目录层次结构
挂载文件系统
虚拟文件系统在内存中把目录组织为一棵树,一个文件系统,只有挂载到内存中目录树下的一个目录下,进程才能访问这文件系统。
执行
用法:mount [-t vfstype] [-o options] device dir
1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Windows网络文件共享:smbfs (默认的windows系统都支持的)
windows网络共享文件:cifs
光盘或光盘镜像:iso9660
UNIX(LINUX) 文件网络共享:nfs
2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
3.device 要挂接(mount)的设备。
4.dir设备在系统上的挂接点(mount point)。
实例:mount -t ntfs-3g /dev/sda1 /mnt/windows(umount /mnt/windows)
mount的流程
在Linux中,open 函数是文件操作的核心系统调用之一,它用于打开文件并返回一个文件描述符,用于后续的文件操作如读取、写入、关闭等。
跟踪内核 open 源码 open->do_sys_open
-
回复了主题帖:
【STM32H7S78-DK测评】第5篇 LTDC显示
xinmeng_wit 发表于 2025-2-25 19:34
显示效果不错啊
对的 这个效果的确可以的
- 2025-02-25
-
发表了主题帖:
【STM32H7S78-DK测评】第5篇 LTDC显示
STM32H7S78系列内置了LTDC控制器,可以方便的进行LCD显示开发。LTDC全称 LCD-TFT Display Controller,LCD显示控制器,提供了RGB信号和控制信号来直接控制外部LCD显示屏。一些屏幕称为RGB屏幕,内部没有驱动IC,操作这种屏幕时往往使用MCU内部集成的LCD控制器直接去控制LCD显示,显存空间当然也是在MCU内部,按照空间大小可以选择放在内部SRAM或者外部SDRAM中,如图:
LTDC外设的硬件连接其实和其它的外设一样,同名的信号连接在一起。这里提到一个名词“显示色彩格式”。典型区分为RGB888和RGB565两种格式,其实只是连接信号线的差异,对于RGB565只是把低位的 信号线给连接到了GND,从而省出来8根GPIO。
在每个像素时钟上升沿或时钟下降沿,并在屏幕有效区域内,LTDC层从其FIFO中检索一个像素数据,将其转换为内部ARGB8888像素格式,并将其与背景和/或其他图层像素颜色进行混合。得到的像素以RGB888格式编码,通过抖动单元并被驱动到RGB接口中。像素便会显示到屏幕上。
我们先去百度搜搜一张800*480的JPEG图片
然后打开LCD Image Converter软件
File
OPEN
打开之后可以看到这张图片
然后我们就要通过软件把图片转换成RGB888格式或者ARGB8888格式
我这个软件比较老估计,没有ARG8888,只能选择RGB888
点击OK
生成图片的数组
打开文件复制出来数组放到我们工程里面
我们软件需要改的地方不多
比较简单
大概就改这么多
然后下载运行
可以显示图片了
但是显示效果不是很好
RGB大家肯定都经常听说过,如果在RGB888的基础上加入8bit的Alpha(透明)通道的话一个像素点就是32bit,也就是4个字节,这种像素格式称为ARGB8888。
A:透明度Alpha
R:红Red
G:绿Green
B:蓝Blue
8888:表示由4个8位组成,即A=8,R=8,G=8,B=8,一个像素点占84=32位,共4个字节。
以此类推,ARGB_4444模式一个像素点占44=16位,共2个字节;ARGB_1555和RGB_565模式一个像素点占16位,共2个字节;其中RGB_565模式没有透明度。
下了一个新的LCD Image Converter软件
可以选择ARGB8888
显示效果
对比很明显这个清晰和色彩好多了
- 2025-02-18
-
回复了主题帖:
st中文论坛的账号密码忘记了,申请重置邮箱始终收不到邮件,大家遇到过吗,怎么弄?
垃圾邮件里看看呢 我之前碰到过被拦截到这里去了