one-touch 发表于 2015-8-17 14:18:57

CUBEMX生成代码,使用时宕机

这几天使用STM32CUBEMX编写STM32F411程序的时候,用到了定时器,我要0.01S取一个数,我就用定时器去完成,但是我使用是发现当中断函数里面没有写自己代码时HAL_TIM_Base_Start_IT这个函数执行能通过,当中断函数写了代码,就会宕机在这一行,如果注释掉就没问题,不知道是什么原因。

netlhx 发表于 2015-8-17 16:18:48

上关键代码,要不然大家也没办法猜

feiante 发表于 2015-8-18 09:56:22

是啊,把你描述的代码贴出来

one-touch 发表于 2015-8-19 09:16:42

netlhx 发表于 2015-8-17 16:18
上关键代码,要不然大家也没办法猜

我在红色代码上写代码,中断正常工作,但是在下面写运行HAL_TIM_Base_Start_IT就会宕机
void TIM2_IRQHandler(void)
{
/* USER CODE BEGIN TIM2_IRQn 0 */
      int i=0,sum,j,temp;
      HAL_UART_Transmit(&huart6,uart_send_data,17,1000);
/* USER CODE END TIM2_IRQn 0 */
HAL_TIM_IRQHandler(&htim2);
/* USER CODE BEGIN TIM2_IRQn 1 */

/* USER CODE END TIM2_IRQn 1 */
}

one-touch 发表于 2015-8-19 09:16:57

我在红色代码上写代码,中断正常工作,但是在下面写运行HAL_TIM_Base_Start_IT就会宕机
void TIM2_IRQHandler(void)
{
/* USER CODE BEGIN TIM2_IRQn 0 */
      int i=0,sum,j,temp;
      HAL_UART_Transmit(&huart6,uart_send_data,17,1000);
/* USER CODE END TIM2_IRQn 0 */
HAL_TIM_IRQHandler(&htim2);
/* USER CODE BEGIN TIM2_IRQn 1 */

/* USER CODE END TIM2_IRQn 1 */
}

党国特派员 发表于 2015-8-19 09:25:33

one-touch 发表于 2015-8-19 09:16
我在红色代码上写代码,中断正常工作,但是在下面写运行HAL_TIM_Base_Start_IT就会宕机
void TIM2_IRQHandl ...

HAL中断有自己的机制,你只要写好回调就行了。

党国特派员 发表于 2015-8-19 09:26:46

楼主好好的看下HAL的手册。。

one-touch 发表于 2015-8-19 10:38:33

党国特派员 发表于 2015-8-19 09:26
楼主好好的看下HAL的手册。。

好的 多谢大神orz

wuzhujian 发表于 2015-8-19 13:03:37

定时器的中断间隔太短,不死都难。

不一定是定时器,其它任何的中断,只要中断的间隔太短,或中断中处理的时间过长,不死都难。

one-touch 发表于 2015-8-25 09:06:23

wuzhujian 发表于 2015-8-19 13:03
定时器的中断间隔太短,不死都难。

不一定是定时器,其它任何的中断,只要中断的间隔太短,或中断中处理的 ...

那它死后,执行的是什么代码呢?中断里面的还是主程序或者跑飞。自己中断把自己打死?
页: [1]
查看完整版本: CUBEMX生成代码,使用时宕机