父之于子,当有何亲?论其本意,实为情欲发耳;子之于母,亦复奚为?譬如寄物瓶中,出则离矣。
— 孔融

父亲对于儿子(或说父子之间)又有什么亲情可言?归根到底(追溯父亲生下儿子的本意.不过情欲发作的一种本能罢了.儿子同母亲同样来讲又有什么感情了?就如同放在瓶子中的一个东西,出来后就分离了,没有任何关系了。

我的儿子

我实在不要儿子,
儿子自己来了。
“无后主义”的招牌,
于今挂不起来了!

譬如树上开花,
花落天然结果。
那果便是你。
那树便是我。

树本无心结子,
我也无恩于你。
但是你既来了,
我不能不养你教你,

那是我对人道的义务,
并不是我待你的恩谊。
将来你长大时,
这是我所期望于你:

我要你做一个堂堂的人,
不要做我的孝顺儿子。
— 胡适

记一次EtherCAT IO扩充

因业务需要,现需要将EtherCAT的IO点位扩充至128入128出。设计过程中碰到以下问题,一一解决掉了:

SSC生成的XML文件,EEPROM烧录后,提示:AdsError:1818, query interface failed.

具体报错截图如下:

问题原因:使用SSC时,import的LAN9252-SDK,此后生成的XML文件经测试会导致这一问题,无论SSC5.11还是5.12,无论IO怎么规划,生成的XML烧录进eeprom都会报这个错误。

解决办法:使用SSC生成XML时,不要import LAN9252的SDK,直接使用最原始的模板建立SSC功能,如下图所示:

用SSC生成协议栈代码时,再用LAN9252的SDK。

DC模式下进不了OP

问题原因:这个比较低级,定时中断,和三个外部中断配置有误,CubeMX配置时要小心。

解决办法:中断向量这么配置:

static void MX_NVIC_Init(void) {
    /* EXTI2_IRQn interrupt configuration */
    HAL_NVIC_SetPriority(EXTI2_IRQn, 1, 2);
    //HAL_NVIC_EnableIRQ(EXTI2_IRQn);
    /* EXTI1_IRQn interrupt configuration */
    HAL_NVIC_SetPriority(EXTI1_IRQn, 1, 1);
    //HAL_NVIC_EnableIRQ(EXTI1_IRQn);
    /* EXTI0_IRQn interrupt configuration */
    HAL_NVIC_SetPriority(EXTI0_IRQn, 0, 0);
    //HAL_NVIC_EnableIRQ(EXTI0_IRQn);
    /* TIM8_UP_TIM13_IRQn interrupt configuration */
    HAL_NVIC_SetPriority(TIM8_UP_TIM13_IRQn, 1, 0);
    HAL_NVIC_EnableIRQ(TIM8_UP_TIM13_IRQn);
}

这样一个定时器中断和三个外部中断上电后不会一下子启动,协议栈会启动这些中断,注意不要把定时器中断的使能关掉,定时器中断的还有另一个函数用来控制启动和停止:HAL_TIM_Base_Start_IT(&htim8);,这个在协议栈的宏中配置好。

丁丁生于 1987.07.01 ,30岁,英文ID:newflydd
  • 现居住地 江苏 ● 泰州 ● 姜堰
  • 创建了 Jblog 开源博客系统
  • 坚持十余年的 独立博客 作者
  • 大学本科毕业后就职于 中国电信江苏泰州分公司,前两年从事Oracle数据库DBA工作,两年后公司精简技术人员,被安排到农村担任支局长(其本质是搞销售),于2016年因志向不合从国企辞职,在小城镇找了一份程序员的工作。
  • 在 Git OSChina 上积极参与开源社区
  •