工具/软件:Code Composer Studio
大家好、我制作了一个板、通过 SPI 鼠标连接 OLED 屏幕。 我设置通过中断自动发送数据。 但是、如果我在发送额外的中断时触发它、它将随机停止。
SPI 鼠标被设置为 SPI 3线主设备。 我调试和检查寄存器、TX 缓冲区存在数据、但 maoudle 不发送。 在手动和演示代码中、只需将数据放入 TX 缓冲区即可。
SMCLK=16M; UCB0BR0=15; NWAITS=1;
我尝试了 IAR 和 CCS 相同的结果。
谢谢你
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
大家好、我制作了一个板、通过 SPI 鼠标连接 OLED 屏幕。 我设置通过中断自动发送数据。 但是、如果我在发送额外的中断时触发它、它将随机停止。
SPI 鼠标被设置为 SPI 3线主设备。 我调试和检查寄存器、TX 缓冲区存在数据、但 maoudle 不发送。 在手动和演示代码中、只需将数据放入 TX 缓冲区即可。
SMCLK=16M; UCB0BR0=15; NWAITS=1;
我尝试了 IAR 和 CCS 相同的结果。
谢谢你
您好!
我确实执行 SPI 中断、并且 I/O 端口中断也被执行。 如果不触发 I/O 中断、SPI 中断可以正常工作。 但是当触发额外的中断时、SPI 鼠标似乎没有 将 UCxTXBUF 置于 发送移位寄存器中。 附加的 UCB0寄存器状态。
最棒的
谢谢你
开关(__evo_in_range (UCB0IV、USCI_SPI_UCTXIFG))
{
案例 USCI_NONE:中断;//向量0 -无中断
USCI_SPI_UCRXIFG 案例:
中断;
USCI_SPI_UCTXIFG 案例:
如果(OLED->IS 发送缓冲器位置>=OLED->IS 发送缓冲器 num)
{
UCB0IE &=~UCTXIE;//禁用 TX 中断
OLED->IS_SEND_BUF_STA=0;
中断;
}
其他
{
UCB0TXBUF = OLED->DISP_SEND_BUF[1][OLED->is_send_BUF_pos];
OLED->I_SEND_BUF_pos++;
}
中断;
默认值:break;
}
UCB0IFG=0;
}