在用非串口非中断方式发送数据时,难免会受到其他中断的干扰。
可以用如下方法解决问题:
1.先将当前中断状态寄存器数据保存
2.屏蔽中断
3.恢复屏蔽前中断状态寄存器数据
// Store current GIE state
uint16_t gie = __get_SR_register() & GIE;
// Make this operation atomic
__disable_interrupt();
(用户代码)
// Restore original GIE state
__bis_SR_register(gie); |