// dma init start
void dma_init()
{
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_UDMA);
ROM_uDMAEnable();
ROM_uDMAControlBaseSet(ucControlTable);
ROM_IntEnable(INT_SSI1);
ROM_SSIDMAEnable(SSI1_BASE,SSI_DMA_TX);
ROM_uDMAChannelAttributeDisable(UDMA_CHANNEL_SSI1TX,
UDMA_ATTR_ALTSELECT |
ROM_uDMAChannelControlSet(UDMA_CHANNEL_SSI1TX | UDMA_PRI_SELECT,
UDMA_SIZE_8 | UDMA_SRC_INC_8 |
UDMA_DST_INC_NONE | UDMA_ARB_8);
//dma init end
}
// 输入10个字节
uint8 g_ZeroArray[PRINTER_WIDTH_BYTE]={0x55};
void sendData()
{
ROM_uDMAChannelTransferSet(UDMA_CHANNEL_SSI1TX | UDMA_PRI_SELECT,
UDMA_MODE_BASICg_ZeroArray
(void *)(SSI1_BASE + SSI_O_DR),
10);
ROM_uDMAChannelEnable(UDMA_CHANNEL_SSI1TX);
ROM_uDMAChannelRequest(UDMA_CHANNEL_SSI1TX);
}
//SSI1 配置
SSIConfigSetExpClk(SPRINT_SSI_BASE, SysCtlClockGet(),
SSI_FRF_MOTO_MODE_0,
SSI_MODE_MASTER, 1000000, 8);
检测到key按下时,调用 sendData()发送10个字节,通过示波器,只捕获到9个字节。