自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 STM32F103ZET6 使用官方串口IAP 学习记录

选择STM32F10E-EVAL进行编译,添加定时器驱动程序,再在stm3210e_eval.c中添加定时器初始化程序以及串口判断程序,并在stm32f10e_eval.h加入函数声明。下载成功之后,按下按键3进入APP程序。进入APP程序之后,按下1会进行软复位,此时可重新开始烧录。至此IAP程序修改完成,用Jlink/STlink烧录IAP程序。选择对应的MCU,设置外部晶振,设置时钟树。至此APP程序编写完成;

2024-07-23 17:39:20 304

原创 STM32+FreeModbus HAL库移植 学习记录

新建一个port.c文件,添加代码。修改porttimer.c文件。

2024-07-17 15:49:58 314

原创 先楫HPM6E00EVK移植EtherCAT + CIA402 8轴控制 学习记录

打开后,将原有的dialog_io.c例程的EtherCAT代码更换成刚才生成的cia402代码,并在主函数添加CIA402_INIT函数;后面MCU烧录一下其他程序,再烧录回来,就可以显示8个轴了)修改完毕,放入路径 C:\TwinCAT\3.1\Config\Io\EtherCAT 中。修改0x0F00,0x0F10,0x0F30,0x0F50的数据类型和参数,增加至8个轴。修改0x1C12,0x1C13的数据类型和参数,增加至8个轴。修改slot参数,增加至8个轴。读取状态指令,一切通讯正常。

2024-07-16 17:27:17 609

原创 STM32F407 + LAN9252 EtherCAT移植记录

去MicroChip官网下载 LAN9252-PIC32_SDK_V1.1 文件,里面有与LAN9252的通讯代码,基于该代码文件修改。寄存器的配置从EEPROM中读取,EEPROM的配置由XML文件配置。LAN9252是需要配置寄存器产生中断的。PDI接口模式由寄存器决定。pmpdrive.h文件。端口配置由硬件引脚决定。设置为16位变址模式。

2024-05-30 13:27:59 379

原创 EtherCAT 个人学习笔记

CIA402的行规定义(0x6000、0x7000)与上述不相同。TXPDO(1C13、SM3) 从站给主站传输数据。字典索引号对应: 0x 60 10 01 10。0x1A00:对应0x6000~0x600F。0x1A01:对应0x6010~0x601F。0x1A03:对应0x6030~0x603F。0x1600:对应0x7000~0x700F。0x1601:对应0x7010~0x701F。0x1603:对应0x7030~0x703F。01:0x6010下的数据索引号。10:对应输入数据的索引号。

2024-05-15 10:18:17 558

原创 从零搭建EtherCAT 从站(STM32F407+ET1200)学习记录

还是比较麻烦,也容易漏改,还是用SSC重新生成比较快,然后再替换el9800hw.c,el9800hw.h,再修改myapp.c就好了,这样的变量定义是自动生成的,不会出现对应不上的问题。APPL_GenerateMapping函数中,获取变量地址有偏差,需要地址加一(如果是用SSC 5.11生成的代码,获取地址计算不一样,但仍有偏差,需要地址加二)本文属于学习笔记,其中多是个人理解,可能多有偏差,仅供学习记录,不专业的地方还望指正。ecatappl.c:主要是ET1200与主站之间的数据传输。

2024-05-14 15:06:54 1333

原创 野火STM32F407(骄阳)+无刷直流驱动板+永磁同步电机控制学习记录(四)(基于HAL库)

以上内容都是参考别人资料自学的,很多地方都是凭感觉,因为理论部分不太会算,只要电机能转就行,其他性能指标都没考虑,因为不会,所以这纯属是学习记录帖。带宽在500时,电流波动小,但是响应很慢,就是堵转后不太容易恢复转动。速度环带宽设定小了,响应不够快,带宽设定大了波动比较大,电机感觉起来也震一点,而且,当带宽设到200的时候,启动直接就锁死了,应该是PI增益设定太大了。电流环带宽的试验:去掉速度环,让Iq_Set=2,Ud=0,此时电机是电流环闭环控制,用手堵转电机然后松开,看电流的波动以及响应情况。

2024-04-13 10:54:07 1637 6

原创 野火STM32F407(骄阳)+无刷直流驱动板+永磁同步电机控制学习记录(三)(基于HAL库)

可以实现FOC开环控制,只是角度是强制给的,而不是通过编码器获取。要获取初始电角度,将Ud=2,Uq=0,Theta=0,开启电机,此时电机处于电角度为0的位置(如果Ud为负数,则处于电角度为180的位置),记录此刻的读数;然后停止控制电机,手动旋转电机,触发编码器的Z信号触发外部中断,记录此刻的读数,两者的差值即为编码器计算角度的补偿值。STM32F4用CUBEMX建立工程是默认开启了FPU的,所以浮点数的计算速度还是很快的,但是开根号和三角函数的计算比较慢,所以根号直接计算成小数,三角函数的计算参考。

2024-04-09 17:28:01 1164 2

原创 野火STM32F407(骄阳)+无刷直流驱动板+永磁同步电机控制学习记录(二)(基于HAL库)

这个电机有个奇怪的问题,定时器3(霍尔模式)的开启必须是在电机即将运动前,且电机停转的时候也要关闭定时器3,否则电机转动必须要手动转一下。main函数代码:KEY1启动电机、KEY2停止电机、KEY3加速、KEY4减速、KEY5反向。定时器1配置,用于输出PWM,上半桥采用PWM控制,下半桥采用普通GPIO口控制。新建一个hall.c文件,用于存放霍尔模式有关的函数。配置定时器3为霍尔传感器模式,并开启中断。基于霍尔传感器通过六步换相控制电机旋转。

2024-04-09 14:00:18 805 4

原创 野火STM32F407(骄阳)+无刷直流驱动板+永磁同步电机控制学习记录(一)(基于HAL库)

根据原理图配置所需GPIO口(含按键、LED、蜂鸣器、编码器、ADC接口等);(按键配置为下拉输入)一切正常时,直流无刷驱动板上只亮两个灯。同时接编码器和霍尔传感器是为了后续同时使用。测试基本的GPIO口和串口输出是否正常,while中写入代码。在usart.c中加入代码,printf重定向。选择时钟源(基于外部晶振),并进行时钟配置。LED_D11一秒闪烁,正常亮灯。

2024-04-09 13:42:12 402

原创 ESP32S2利用串口下载程序(个人学习记录)

接线方式:ESP32S2开发板———————— USB TTL。

2023-05-30 10:41:05 2719

原创 ESP8266(ESP-01) 烧录固件记录

将USB TTL模块与ESP-01按下图接线下载接线接线实物图:USB TTL 上 GND 引脚不够,借用单片机开发板上的引脚。

2023-05-26 18:43:33 2060 3

原创 STM32与ESP32的硬件SPI通信(个人学习记录)

STM32F103ZET6作为主机,使用SPI2,ESP32S2作为从机,进行SPI双向通信;硬件接线如下:主机 从机(地线一定相连在一起,不然传输的数据会乱码)

2023-05-17 10:53:47 4455 5

原创 STM32的SPI硬件CRC校验(个人学习记录)

同样,接收到的CRC与SPI_RXCRCR值进行比较,如果比较不相配,则设置SPI_SR上的CRCERR标志位,当设置了SPI_CR2寄存器的ERRIE时,则产生中断。● 在把最后一个字节或半字写进发送缓冲器时,设置SPI_CR1的CRCNext位,指示硬件在发送完成最后一个数据之后,发送CRC的数值。不知道为啥,SPI传输的第一个数据总是不正确,后面的数据不会有影响,我不理解。● 通过设置SPI_CR1寄存器CRCEN位使能CRC计算,该操作也会清除寄存器SPI_RXCRCR 和SPI_TXCRC;

2023-05-10 10:29:42 6455 4

空空如也

空空如也

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

TA关注的人

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