小编use*_*409的帖子

为什么在此禁用中断?

static void RadioReleaseSPI(void) {
    __disable_interrupt();
    spiTxRxByteCount &= ~0x0100;
    __enable_interrupt();
}
Run Code Online (Sandbox Code Playgroud)

我知道多个任务可能会尝试使用SPI资源.spiTxRxByteCount是一个全局变量,用于跟踪SPI当前是否正被另一个任务使用.当任务需要SPI时,它可以检查状态spiTxRxByteCount以查看是否正在使用SPI.当使用SPI完成任务时,它会调用此函数并清除该位,以指示SPI现在是空闲的.但为什么要先禁用中断然后再重新启用呢?只是偏执狂?

c embedded rtos

7
推荐指数
2
解决办法
2615
查看次数

尝试做的增量和减量分配是什么?

*pSpiTxBuf++ = CC2520_INS_SFLUSHRX; // get rid of this packet
*pSpiTxBuf-- = CC2520_INS_SFLUSHRX; // double flush [CC2520 Bug#1]
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释上述两行试图做什么?pSpiTxBuf是一个uint8_t *

c iar

2
推荐指数
1
解决办法
114
查看次数

标签 统计

c ×2

embedded ×1

iar ×1

rtos ×1