- 博客(16)
- 收藏
- 关注
原创 Uα和Uβ的推导
为了弄出来Ld-Lq这项,令Ld = Lq +(Ld - Lq),Lq = Ld - (Ld - Lq),将id,iq前面的矩阵中变得对称起来,好方便后面的计算。,满足矩阵乘法交换律,所以。, P是微分算子。
2026-07-30 17:23:06
202
原创 assert_failed定义时报错declaration is incompatible
最后检查,发现,在main.c中定义的assert_failed的形参uint32_t line,这个uint32_t在其它头文件中被定义#define uint32_t unsigned long,而在base_types.h中,uint32_t是typedef unsigned int uint32_t,所以冲突了。在base_types.h中申明 void assert_failed(uint8_t* file, uint32_t line);在main.c中定义了。
2026-01-23 10:16:44
89
原创 FreeRTOS的简单移植
如果你的芯片是Coretx-M0+/Coretx-M0,那就选"FreeRTOS\port\RVDS\ARM_CM0"下的port.c,如果你的芯片是Coretx-M3,那就选"FreeRTOS\port\RVDS\ARM_CM3"下的port.c,其它种类芯片依次类推,要与芯片对应。b、将"FreeRTOSv9.0.0\FreeRTOS\Source\portable"下的MemMang、RVDS这两个文件夹copy到新建的"FreeRTOS\port"下。
2025-11-12 13:57:32
670
原创 因为Pack包找不到下载芯片(Error:Device not found)
勾选use latest versions of all installed software packs就找到了。
2025-02-07 10:37:49
804
原创 KEIL中串口重定向后printf无法打印
在对 int fputc(int ch, FILE *f) 函数重定向后,依然无法打印数据,但是直接向UART的TDR寄存器写数据可以发送数据。另外,要注意,SWD口复用成串口引脚后,注意打印串口时,调试器不能连在上面,否则会干扰串口打印。原因:忘记勾选options-->Target--->Use MicroLIB。
2024-08-19 15:58:59
702
1
原创 磁链与反电动势常数
极对数(可由示波器测得),Vpp:线峰峰值(示波器接电机UVW3根线中任意两端的电压,测得应该是正弦波形,Vpp就是正弦波形的峰峰值,单位:V),n:转子的机械转速(单位:rpm):线反电动势常数(电机可在电钻作用下旋转,由示波器测得,具体测量方法网上有,这里就不细说),的定义:转子1000rpm时产生的线反电动势,单位:V/krpm。),电机不带电在外力作用下旋转,反电动势是由转子磁链。:电转速或者电频率(可由示波器测得,单位:Hz),产生的,UVW三相的反电动势是正弦波形,分别为。
2024-05-23 11:37:27
4943
1
原创 vofa+的简单使用
a.MCU要配置串口(如波特率选择115200,无奇偶校验,数据长度8bit),并且重载fputc函数,使用printf函数打印数据到vofa+,以\n结束,例如:printf("%d,%d,%d\n",ADC_Value[0],ADC_Value[1],ADC_Value[0]-ADC_Value[1]);网格中波形显示不全,点下方的Auto自动缩放,也可以鼠标缩放,下面是缩放后的波形,注意网格图中要能看见右边的紫竖线和左边的红竖线,这样有利于观察波形。单纯的做串口助手使用,接收MCU串口发送的数据。
2024-05-06 17:32:42
9583
原创 使用workbench的ST Motor Pilot遇到问题Port Open and try to configure the board
解决办法,代码中的串口波特率为1843200,pilot中也修改成1843200就OK了。遇到fault_over,只需点ACK faults消除错误,然后start重新运行即可。总之pilot的波特率要与workbench生成的代码里串口的波特率设置得一致。接下来就可以通过小圆点来调节电机转速。
2024-04-23 16:07:30
2143
8
原创 coremark跑分时遇到Errors detected(是迭代次数少了)
另外在移植完coremark代码后,编译没问题,但debug时,遇到了hardfualt_handler固件错误,查找原因是,栈和堆默认的0x200,0x200小了,后来改成0x1000,ox2000就OK了,修改位置是在option的linker下修改,不同与keil可以直接在启动.s文件中可以直接修改,栈、堆修改的大小具体看芯片的sram和flash大小,不必一定要0x1000,0x2000,看自己需求即可。IAR上工程需要如下图配置,才会让coremark跑的分更高,勾选速度优化选项+不在乎空间。
2023-11-18 00:02:42
494
1
原创 在IAR中如何使用printf打印数据到串口助手
重新定义putchar函数就OK了,不需要去重新定义write函数。注意IAR编译时会报错,什么不认识-Write函数,不同于KEIL5,需要重定向fputc。
2023-11-17 14:16:34
2816
3
stm32G474RET6板子DAC1通道2不出波形
2023-08-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅