首页 > 其他分享 >STM32+致远电子Dport模块的Ethercat从站开发

STM32+致远电子Dport模块的Ethercat从站开发

时间:2024-10-29 16:59:14浏览次数:6  
标签:HAL PIN BUFFER void STM32 SPI Dport GPIO Ethercat

环境准备

硬件环境

1.Dport-stm32评估板

2.stlink

3.千兆网线

4.安装有twincat3的上位机电脑(带千兆网口)

 

软件环境

1.TC31-FULL-Setup.3.1.4024.53.exe

2.mdk5开发环境

3.SSC Tool.exe

4.stm32cubemx

 

例程资料

1.致远电子官网

 

开发流程

1.底层硬件

EPC103-DP系统框图,可能使用et1100作为core

2.硬件抽象

sync0->PA1->EXTI1

sync1->PA2->EXTI2

PDI->PA0->EXTI0

 

3.软件操作:

打开8led的示例工程并烧录

注意这里的烧录器需要更改两处,并且文档包含中文路径,需要将code(包含ethercat文件夹)整体剥离出来,并且使用v5的编译器,否则无法生成browse info

.

我们梳理一下例程的数据流:

移植平台对示例文件的改动:

1.spi的收发函数

2.片选引脚

extern SPI_HandleTypeDef hspi1;
#define SPI_WRITE_AND_READ(TX_BUFFER,RX_BUFFER,Size)      HAL_SPI_TransmitReceive(&hspi1, TX_BUFFER, RX_BUFFER,Size, HAL_MAX_DELAY)
#define SELECT_SPI                                        HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET)                    
#define DESELECT_SPI                                      HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_SET)

3.外部中断(sync0,sync1)

例程内采用SM+DC模式,具体用哪种可以在上位机中切换

void DISABLE_ESC_INT(void){
#if AL_EVENT_ENABLED
	HAL_NVIC_DisableIRQ(EXTI0_IRQn);
#endif
}
void ENABLE_ESC_INT(void){
#if AL_EVENT_ENABLED
	HAL_NVIC_EnableIRQ(EXTI0_IRQn);
#endif
}

4.

标签:HAL,PIN,BUFFER,void,STM32,SPI,Dport,GPIO,Ethercat
From: https://www.cnblogs.com/aker-whale/p/18510371

相关文章

  • EtherCAT协议基础
    三种工作模式工作模式同步方式同步精度应用场景自由运行模式不同步无严格同步数据采集、监控等低实时性应用同步管理模式通过SyncManager低到中等一般工业控制、低精度运动控制分布式时钟同步模式通过DistributedClocks高精度(亚微秒级)高精度运动控......
  • 基于HAL库STM32F1虚拟串口(USB)通信、大端模式、结构体对齐
    虚拟串口收发函数、大端模式和小端模式、结构体对齐文章目录虚拟串口收发函数、大端模式和小端模式、结构体对齐前言一、发送函数二、接收函数三、大端模式与小端模式三、结构体对齐前言本文主要是在上一篇中的工程,使用虚拟串口遇到的一些问题:在发送数据直接找到......
  • 【STM32】STM32系统时钟RCC
    我们每次在新建工程中对外设模块进行初始化的第一步就是RCC开启时钟我刚开始学的时候对这个没什么概念,就只知道初始化之前要开启时钟,就要用RCC相关的函数,得过且过照着别人的代码敲,但是程序多写几个就会疑惑时钟到底是什么,为什么必须要开启……带着这些疑问我查阅了一些资料......
  • 基于stm32的rfid智能农场物联网单片机软硬件设计毕业生系统
    (1)硬件端STM32F103C8T6:用于所有程序的中控和模块数据通信;0.96寸OLDE:用于显示当前设备状态以及实时温度;蜂鸣器:用于设备状态的提示和报警;RFID读卡器:使用读卡器功能进行卡号读取,并作为唯一标识体温传感器:检测到体温并且读卡器读取的卡号为牛的唯一标识,则将数据打包上传到app进行保......
  • 基于stm32的水质监测检测物联网单片机软硬件设计毕业生系统
    (1)硬件端STM32F103C8T6:用于所有程序的中控和模块数据通信;0.96寸OLDE:用于显示当前当前ph值、当前tds值,最上方显示游泳池水质检测;蜂鸣器与LED:用于设备报警和状态提示;Wife模块:用于设备联网,实现远程APP查看;超声波模块:使用超声波测距,实时回传测定的水位线;按键模块:用于调整限值数据,......
  • 基于stm32的智能语音药箱药盒物联网单片机软硬件设计毕业生系统
    (1)硬件端STM32F103C8T6:用于所有程序的中控和模块数据通信;0.96寸OLED:用于显示的各种环境数据,实现实时监测;GA10:使用4G模块,用与设备联网处理,实现连接云平台和使用MQTT协议远程传输数据,药品不足需提醒;MAX30102心率模块:用于监测患者的心率和血氧数据;LU90614红外测温:用于监测患者的......
  • 基于STM32的智能停车场管理系统设计
    引言随着城市汽车数量的增加,停车场的管理变得愈加复杂。传统的停车管理方式效率低下,而智能停车场管理系统可以提高停车效率,减少人工管理成本,提升用户体验。本文基于STM32微控制器设计了一个智能停车场管理系统,集成了车位检测、车牌识别、自动闸门控制和实时数据监控等功能,实现......
  • 【STM32+HAL库】使用通用定时器生成的PWM实现呼吸灯效果
    板子:STM32F103C8仿真软件:Proteus8软件平台:cubemx+keil1新建STM32CubeMX工程1.1配置系统时钟RCC  1.2配置定时器这里用的PB3和PA15一对在TIM2中,时钟源选择内部时钟InternalClock,通道1选择PWM输出PWMGenerationCH1通道2选择PWM输出PWMGenerationCH2 ......
  • 【STM32 Blue Pill编程实例】-控制步进电机(ULN2003+28BYJ-48)
    控制步进电机(ULN2003+28BYJ-48)文章目录控制步进电机(ULN2003+28BYJ-48)1、步进电机介绍2、ULN2003步进电机驱动模块3、硬件准备及接线4、模块配置3.1定时器配置3.2ULN2003输入引脚配置4、代码实现在本文中,我们将介使用STM32CubeIDE使用ULN2......
  • STM32--I2C外设
    前文说到了12C的协议规定和通信意义,并且也用GPIO口模拟的I2C,实现了读写MPU6050的程序,在这个过程中可以发现,通信协议的时序是一个很重要的东西,只要理解清楚了这个时序的意,就可以按照协议的规定,去翻转通信引脚的高低电平,只要翻转产生的这个时序波形,满足了通信协议的规定,那通信双......