主题中讨论的其他器件:C2000WARE
我知道这不是一个 Visual C++论坛、但由于 TI 提供了串行闪存编程器、我想也许有人可以提供帮助。 这是函数
C:\ti\c2000Ware_4_01_00_00\utilities\flash_programmers\serial_flash_programmer\serial_flash_programmer\source\f021_DownloadKernel.cpp
void loadProgram(FILE *fh) { unsigned char sendData[8]; unsigned int fileStatus; unsigned int rcvData = 0; DWORD dwRead; DWORD dwWritten; getc(fh); getc(fh); getc(fh); fileStatus = fscanf_s(fh, "%x", &sendData[0]); float bitRate = 0; DWORD millis = GetTickCount(); while (fileStatus == 1) { QUIETPRINT(_T("\n%lx"), sendData[0]); //Send next char WriteFile(file, &sendData[0], 1, &dwWritten, NULL); bitRate++; dwRead = 0; //T1 while (dwRead == 0) { ReadFile(file, &rcvData, 1, &dwRead, NULL); } //T2 QUIETPRINT(_T("==%lx"), rcvData); //Ensure data matches if (sendData[0] != rcvData){ VERBOSEPRINT(_T("\nData does not match... Please press Ctrl-C to abort.")); while (1){} } //Read next char fileStatus = fscanf_s(fh, "%x", &sendData[0]); } millis = GetTickCount() - millis; bitRate = bitRate / millis * 1000 * 8; QUIETPRINT(_T("\nBit rate /s of transfer was: %f"), bitRate); rcvData = 0; }
波特率为115200、字符被正确回传。 在自由运行中、标记之间的时间为15ms、这太长了。 但是、如果我在 T1暂停程序、然后让它读取、则读取操作需要7ms。 F28386S 立即回显字符,因此延迟似乎是 ReadFile()。
有什么想法吗?
谢谢、
John