请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28386S 您好!
我想通过串行端口发送浮点值。
考虑以下允许代码:
void SendData(float a, float b, float c)
{
#define bufLen 16
uint16_t sendBuff[bufLen];
sendBuff[0] = SOM1;
sendBuff[1] = SOM2;
sendBuff[2] = 0x00;
GPIO_writePin(TEST_128, 0);
loadDataToArray(&sendBuff[ 3], a);
loadDataToArray(&sendBuff[ 7], b);
loadDataToArray(&sendBuff[11], c);
GPIO_writePin(TEST_128, 1);
sendBuff[bufLen - 1] = EOM;
SCI_writeCharArray(SCIA_BASE, sendBuff, bufLen);
}
void loadDataToArray(uint16_t * dest, float data)
{
int * ptr = &data;
dest[0] = *(ptr) & 0x00FF;
dest[1] = *(ptr) >> 8;
dest[2] = *(ptr + 1) & 0x00FF;
dest[3] = *(ptr + 1) >> 8;
}
此代码大约需要140us 的运行时间。
是否有人建议如何更积极地开展这一进程?
谢谢!