我在stm32f103的芯片上控制io口的输出。 因为输出io口比较多(大概20多个),所以就写了一个控制逻辑函数,传入不同的io口结构体地址,就控制不同的io口, 然后把这个函数放在一个20ms的定时器里循环执行,等待传入执行的参数。 现在的问题是发现这个中断定时器有时候不按照代码的逻辑顺序执行了 这个逻辑控制函数必须严格按照时序来执行,可以同时控制多个io口按照不同的时间,不同的顺序执行。。。。 现在问题来了。。。。 这个函数开始执行一切正常。。。。可是跑着跑着就乱套了。。。。控制的是这个io口,结果执行其他的io口,逻辑全乱套了。。。有些io口不停的乱执行。。。 //10ms 运行一次 if (HAL_TIM_Base_GetState(&htim4) == HAL_TIM_STATE_READY) { HAL_NVIC_ClearPendingIRQ(TIM4_IRQn); _io_interrupt_function_all_output(); } 内部已经加了软件锁,及硬件同步锁,还在多处调用了HAL_NVIC_ClearPendingIRQ(TIM4_IRQn); 可是问题依旧。。。。。。 求救。。。。。。。 |
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分