启用 AXDL345 的中断,然后 我用cc1310的pin_io配置了 外部中断,再然后 我发现 在io的回调函数里面,一旦我使用IIC的读取函数,程序就会死掉;
bool iic_read(uint8_t add,uint8_t *buff,uint8_t len)
{
i2cTransaction.writeBuf = &add;
i2cTransaction.writeCount = 1;
i2cTransaction.readBuf = buff;
i2cTransaction.readCount = len;
return I2C_transfer(i2c,&i2cTransaction);
}
不能这样处理嘛?
我在主循环里面 (用标志位)读取IIC 就可以。
user5993042:
还有 cc13130有想stm32 那种 全球唯一芯片id sn号 这种东西嘛?
Viki Shi:
回复 user5993042:
1、你使用了两个中断,优先级是否设置的合理?
2、有,全球唯一的mac address,存放在ROM中,可以通过flash programmer 2 读取
user5993042:
回复 Viki Shi:
是这样的我第一个中断是用IIC 配置的AXDL345 传感器的 中断,产生freefall的时候引脚产生低电平;
然后 我用pin_interrupt,去检测这个AXDL345 产生的低电平;
但是产生电平之后,我需要读一次AXDL345 寄存器,清除AXDL345 的中断标志位;
这个时候 我把IIC—read, 放在void buttonCallbackFxn(PIN_Handle handle)必然死机,串口停止打印,debug 也报错;但是 我在void buttonCallbackFxn(PIN_Handle handle) 选择置起标志位,然后 在主循环里面
IIC—read这样就没有问题
是第一种方式 有什么错嘛?
Viki Shi:
回复 user5993042:
通过外部中断去对传感器中断进行管理,要把外部中断优先级提高,具体你可以查一下中断嵌套方面的知识
user5993042:
回复 Viki Shi:
谢谢,那么问题来了;我仔细了看了一下外部中断的历程,并没有发现优先级设定的地方;还有 关于中断嵌套方面的知识有相应的文档嘛?
user5993042:
回复 Viki Shi:
你好啊,Viki Shi
现在 我不知道 这个mac address 的偏移地址啊,有文档描述 这方面的嘛?