コード例 #1
0
void dma_channel_reset(uint32_t dma, uint8_t channel)
{
	/* Disable channel and reset config bits. */
	DMA_CCR(dma, channel) = 0;
	/* Reset data transfer number. */
	DMA_CNDTR(dma, channel) = 0;
	/* Reset peripheral address. */
	DMA_CPAR(dma, channel) = 0;
	/* Reset memory address. */
	DMA_CMAR(dma, channel) = 0;
	/* Reset interrupt flags. */
	DMA_IFCR(dma) |= DMA_IFCR_CIF(channel);
}
コード例 #2
0
void dma_set_peripheral_address(uint32_t dma, uint8_t channel, uint32_t address)
{
	if (!(DMA_CCR(dma, channel) & DMA_CCR_EN)) {
		DMA_CPAR(dma, channel) = (uint32_t) address;
	}
}
コード例 #3
0
ファイル: dma_common_f13.c プロジェクト: dipspb/libopencm3
void dma_set_peripheral_address(u32 dma, u8 channel, u32 address)
{
	if (!(DMA_CCR(dma, channel) & DMA_CCR_EN))
		DMA_CPAR(dma, channel) = (u32) address;
}