工具/软件:Code Composer Studio
我使用的是 MSP432R (红色) Launchpad、并具有以下代码片段
volatile unsigned int rxbuff 计数= 0;
volatile int8_t rxbuff[256]; // 256字节缓冲区
…
空 EUSCIA2_IRQHandler (空)
{
// uint8_t rxchar;
uint32_t status = MAP_UART_getEnabledInterruptStatus (EUSCI_A2_base);
MAP_UART_clearInterruptFlag (EUSCI_A2_base、status);
IF (STATUS 和 EUSCI_A_UART_receive_interrupt_FLAG)
{
rxbuff [rxbuff 计数]= map_UART_receiveData (eUSCI_A2_base);
MAP_UART_transmitData (eUSCI_A2_base、rxbuff [rxbuff 计数]);
if ((rxbuff [rxbuff 计数])==-52)
{
Buffer_Full = 1;
}
rxbuff 计数++;
}
}
三、工作安排
当 UART 读取十六进制值 CC 时、if 语句(if ((rxbuff [rxbuff _count])==-52) 按预期计算 true。
但是,如果我将其重写为: if ((rxbuff [rxbuff 计数])=0xcc) 或即使 (rxbuff [rxbuff 计数]=0xCC)
它始终被跳过。
在 CCS 中表示十六进制值的正确方法是什么?