一点一点看汇编,发现这个好像是STM32一个内部硬件机制问题
比如我定义了一个指针char *p_Sample;
初始指向地址0x78;
一般思维,如果我p_Sample++; 那肯定现在指向0x79了
但是,STM32的直接指向了0x7A,两个字节跳了
所以我用!=号就永远不可能正好等于地址,然后就跑飞了
【 在 lvsoft 的大作中提到: 】
: 当你在多个中断源之间遇到问题时,存在多种可能的原因。即使你认为其他时钟不应该影响当前的行为,它们仍然可能会间接影响系统的行为。以下是一些可能的原因:
: 中断嵌套:STM32支持中断嵌套。这意味着当一个中断正在执行时,如果另一个优先级更高的中断被触发,那么当前的中断会被暂停,直到优先级更高的中断执行完毕。如果你的中断优先级设置不正确,这可能导致不可预测的行为。
: 共享资源:两个或多个中断例程可能共享某些资源,例如全局变量、外设或内存。如果在中断服务例程中没有正确管理这些共享资源,可能会发生竞态条件,导致系统崩溃。
: ...................
--
FROM 180.116.135.*