工具/软件:Code Composer Studio
您好、 数据是 通过 RS232位感叹号传输的、 使用 while 循环 没有问题、无论是否使用调试器、数据都能正确传输。
当 while 循环被注释掉 时、数据是无用的(失败)、具有 和不具有调试器
#define UART_WAIT_ONE_BIT for (delay1 = 1;delay1 <43;delay1++){asm (" NOP");asm (" NOP");asm (" NOP");asm (" NOP");asm (" NOP"); asm (" NOP");asm (" NOP");asm (" NOP");asm (" NOP");asm (" NOP");asm (" NOP"); asm (" NOP");}
uint8 FwRevision[]={"12345678-a" };
通过:
while (1){
TX_FirmwareSerialNumber (FwRevision);
}
失败:
//while (1){
TX_FirmwareSerialNumber (FwRevision);
//}
子部分
void TX_FirmwareSerialNumber (uint8 *ptrFwRevision
uint8 delay1、字节计数、掩码、位索引;
字节计数= 11;
屏蔽= 0x01;
字节计数= 0;
for (byteCount = 0;byteCount < 11;byteCount++){
//发送起始位
GpioDataRegs.GPACLEAR.bit.GPIO23 = 1;
UART_WAIT_ON1_BIT
//发送8位,移动数据
for (bitIndex = 0;bitIndex <8;bitIndex++){
if (ptrFwRevision[byteCount]& mask){
GpioDataRegs.GPASET.bit.GPIO23 = 1;
}
其他
{
GpioDataRegs.GPACLEAR.bit.GPIO23 = 1;
}
//LSB 优先、
掩码<= 1;
UART_WAIT_ON1_BIT
}
//Tx 停止位
GpioDataRegs.GPASET.bit.GPIO23 = 1;
UART_WAIT_ON1_BIT
UART_WAIT_ON1_BIT
UART_WAIT_ON1_BIT
屏蔽= 0x01;
}//end while