我正在使用STM32CubeMX,STM32F103C8T6和Eclipse运行我的第一个CAN测试程序。我在STM32CubeMX中使用了默认的CAN设置(也尝试了环回,但结果相同)。我所看到的(见下图)是我不理解的两件事;- 在下图中,您可以看到我超出了hcan.pTxMsg-> StdId = 0x321(左红 {MOD}椭圆)的行,但当前值显示536891392(右红 {MOD}椭圆)。
- 当我执行下一行(绿 {MOD}):hcan.pTxMsg-> Extid = 0x01时,我最终遇到硬故障中断:/ **
- @brief此功能处理硬故障中断。 / void HardFault_Handler(void){/ USER CODE BEGIN HardFault_IRQn 0 * // * USER CODE END HardFault_IRQn 0 / while(1){} / USER CODE BEGIN HardFault_IRQn 1 * // * USER CODE END HardFault_IRQn 1 * /}
为什么值没有更新,为什么我得到硬件故障(指针hcan.pTxMsg不是NULL,因为它甚至显示字段StdId(它甚至可以显示值为134222077的ExtId(图中未显示)?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
但是,它不分配/初始化pRxMsg和pTxMsg。
pTxMsg应定义为:
CanTxMsgTypeDef txMessage;
hcan.pTxMsg = &txMessage;
和pRxMsg:
CanRxMsgTypeDef rxMessage;
hcan.pRxMsg = &rxMessage;
一周热门 更多>