SPI0_MasterDMATrans

/*********************************************************************

?* @fn? ? ? SPI0_MasterDMATrans

?*

?* @brief? ?DMA方式連續(xù)發(fā)送數(shù)據(jù)

?*

?* @param? ?pbuf? ? - 待發(fā)送數(shù)據(jù)起始地址,需要四字節(jié)對其

?* @param? ?len? ? ?- 待發(fā)送數(shù)據(jù)長度

?*

?* @return? none

?*/

void SPI0_MasterDMATrans(uint8_t *pbuf, uint16_t len)

{

? ? //R8_SPI0_CTRL_MOD &= ~RB_SPI_FIFO_DIR;

? ? R16_SPI0_DMA_BEG = (uint32_t)pbuf;

? ? R16_SPI0_DMA_END = (uint32_t)(pbuf + len);

? ? R16_SPI0_TOTAL_CNT = len;

? ? R8_SPI0_INT_FLAG = RB_SPI_IF_CNT_END | RB_SPI_IF_DMA_END;

? ? R8_SPI0_CTRL_CFG |= RB_SPI_DMA_ENABLE;

? ? while(!(R8_SPI0_INT_FLAG & RB_SPI_IF_CNT_END));

? ? R8_SPI0_CTRL_CFG &= ~RB_SPI_DMA_ENABLE;

}

有沒有不用在這里死等的方式DMA傳輸?

? ? while(!(R8_SPI0_INT_FLAG & RB_SPI_IF_CNT_END));

? ? R8_SPI0_CTRL_CFG &= ~RB_SPI_DMA_ENABLE;


這里是查詢數(shù)據(jù)發(fā)送是否完成,并在數(shù)據(jù)傳輸完成停止DMA。

可以通過查詢的方式查看寄存器是否傳輸完成,并在傳輸完成后及時(shí)停止DMA即可。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频