This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS570LS1227: 请教tms570ls1227的mibspi模块,动态修改数据发送长度

Part Number: TMS570LS1227

请教:hal code generator软件中可以设置mibspi的数据发送长度,即group的length,但是我希望在使用过程中动态修改每次发送的数据长度,请问应该怎么修改?

我设置length为16,发送数据的时候修改了tms570_mibspiSetU8Data函数,希望实现调用这个函数时,可以发送出4个字节的数据,但是通过示波器抓取的波形发现,每次发送的数据始终为 16个字节。

void tms570_mibspiSetU8Data(mibspiBASE_t *mibspi, uint32 group, uint8 * data,uint32_t u32DataLen)
{
mibspiRAM_t *ram = (mibspi == mibspiREG1) ? mibspiRAM1 : ((mibspi == mibspiREG3) ? mibspiRAM3 : mibspiRAM5);
uint32 start = (mibspi->TGCTRL[group] >> 8U) & 0xFFU;
uint32 end = (group == 7U) ? (((mibspi->LTGPEND & 0x00007F00U) >> 8U) + 1U) : ((mibspi->TGCTRL[group+1U] >> 8U) & 0xFFU);

if (end == 0U)
{
end = 128U;
}
if(end > start + u32DataLen)
{
end = start + u32DataLen;
}
while (start < end)
{
/*SAFETYMCUSW 45 D MR:21.1 <APPROVED> "Valid non NULL input parameters are only allowed in this driver" */
ram->tx[start].data = *data;
/*SAFETYMCUSW 567 S MR:17.1,17.4 <APPROVED> "Pointer increment needed" */
data++;
start++;
}
}