28377D在与USB通讯的过程中会丢失高8位,如这个链接所述:http://www.deyisupport.com/question_answer/microcontrollers/c2000/f/56/t/112591.aspx。
请问,TI有为此做一个库函数吗?让16位的C2000可以与8位的USB进行通讯,这之间的转换都在函数内部进行。不需要我自己再做一个函数来对16位的数据进行拆分。
Eric Ma:
是有的,见USB升级例程。
C:\ti\controlSUITE\device_support\~Utilities\usb_flash_programmer
ui32Read = USBBufferRead((tUSBBuffer *)&g_sRxBuffer, rx8Buffer, ui16Length);
// conveter byte rxBuffer to word UsbRxBuffer length8 = ui16Length;// for(c = 0; c < length8; c++) // TI bootloader format// {// __byte((int *)rx16Buffer, c) = rx8Buffer[c];// }
如屏蔽中那个__byte语句,就是将两个rx8Buffer 8位的数据放到rx16Buffer中。这个是接收,如果是发送的话,那你把数据写在低8位即可。
USBBufferWrite((tUSBBuffer *)&g_sTxBuffer, (uint8_t *)ack, 1);
Eric