STM8L 在USART中使用DMA来发送与接收数据

以USART为例子来使用DMA
分两部分,第一为,DMA这个外设自身的配置;第二为,USART的DMA部分配置,
DMA与USART的DMA配置
void SYS_DMA_Init(void)
{		
	CLK_PeripheralClockConfig(CLK_Peripheral_DMA1, ENABLE);</span>	//打开时钟,很重要
	/* Deinitialize DMA channels */
	DMA_GlobalDeInit();
 
	DMA_DeInit(DMA1_Channel1);
	DMA_DeInit(DMA1_Channel2);
	
	/* DMA channel Rx of USART Configuration */
    //该函数主要要配置好接受的数组,以及USART的数据寄存器地址,数组大小,以及DMA模式
	DMA_Init(DMA1_Channel2, (uint16_t)RxBuffer, (uint16_t)0x5231, \
	         10, DMA_DIR_PeripheralToMemory, DMA_Mode_Normal, \
	         DMA_MemoryIncMode_Inc, DMA_Priority_Low, DMA_MemoryDataSize_Byte);
 
	/* DMA channel Tx of USART Configuration */
    //该函数主要配置发送数组,以及USART的数据寄存器地址,数组大小,以及DMA模式
	DMA_Init(DMA1_Channel1, (uint16_t)TxBuffer, (uint16_t)0x5231, \
			 60, DMA_DIR_MemoryToPeripheral, DMA_Mode_Normal, \
			 DMA_MemoryIncMode_Inc, DMA_Priority_High, DMA_MemoryDataSize_Byte);
	
	/* Enable the USART Tx/Rx DMA requests */
	USART_DMACmd(USART1, USART_DMAReq_TX, ENAB
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值