这里讲一下soem的时间
提供配套CUBE工程和技术支持。SOEM协议栈使用1.3.1版本。可配套NUCLEO-H743ZI开发板使用。支持DC同步。可配合汇川IS620N、三洋RS3、赛孚德ASD620B、埃斯顿ProNet、迈信EP3E、台达A2-E、伟创SD700、松下A5B/A6B和欧姆龙G5系列驱动器使用
1.
选用Tim2作为系统时钟,主频为108M。TIM2_Init(1000000-1,108-1);即每1us计数一次,当计数1000000us(1s)时触发一次中断。每中断一次秒+1,TIM2->CNT的值即为微秒。因为soem采用的计时方式就是秒+微秒,因此达到要求。
2.也可以采用王惠娇同志的硕士论文《基于嵌入式平台的EtherCAT主站实现研究》中提到的主从定时器的方案。
3.也可以选用stm32的SysTick定时器作为时钟源,因为SysTick定时器是cortex-M处理器都拥有的定时器,freertos等嵌入式实时操作系统都是用SysTick定时器作为系统时钟的。
我给的源码是采用了主从定时器的方案。
void MX_TIM2_Init(void)
{
TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_MasterConfigTypeDef sMasterConfig;
htim2.Instance = TIM2; //通用定时器2
htim2.Init.Prescaler &