stm32串口DMA一直配置错误。

直接上串口中断的代码,之前是无论怎么配置dma最多只传输一次,后找到原因是因为在串口中断中需要先关闭DMA然后填充计数器,再打开。我之前以为设置单词模式后dma传输完成就自动关闭了,然后就没有先关闭再填充计数器,而是直接填充计数器了。另外又发现好像开启外设中断之后必须要配置一下NVIC控制器,不然无法进入中断函数。这又引起一个疑惑,就是不明白RT-Thread的NVIC组倒是应该设置为组几,在代码中未看到设置NVIC组。

void USART3_IRQHandler()
{
	uint8_t i;
	
	rt_kprintf("USART3_IRQHandler! \n");
	if(USART_GetFlagStatus(USART3,USART_FLAG_RXNE)!=RESET)
	{
		USART_ClearFlag(USART3,USART_FLAG_RXNE);
		rt_kprintf("USART_FLAG_RXNE! \n");
	}
	if(USART_GetFlagStatus(USART3,USART_FLAG_IDLE)!=RESET)
	{
		DMA_Cmd(DMA1_Channel3, DISABLE);
		DMA_SetCurrDataCounter(DMA1_Channel3,9);
		DMA_Cmd(DMA1_Channel3, ENABLE);
		
		rt_kprintf("USART_FLAG_IDLE \n");
		
		
		i=USART3->DR;
		i=USART3->SR;
	}

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: STM32F103是一款常用的32位单片机,它内置了多个DMA通道,可以实现高效的数据传输。在配置STM32F103的DMA数据发送时,需要按照以下步骤进行: 1. 开启DMA时钟,打开DMA传输通道的时钟使能。 2. 配置DMA通道控制寄存器,设置DMA传输方向(内存到外设或者外设到内存),传输数据大小,传输模式(单次或循环),传输优先级等。 3. 配置DMA通道数据缓存区,指定数据源和目的地址。 4. 配置外设相关寄存器,如USART的发送数据寄存器或SPI的发送缓存寄存器等。 5. 启动DMA传输,通过设置相关位来启动DMA传输并等待传输完成。 需要注意的是,在设置DMA传输规则时,应该根据具体的外设接口和数据模式进行设置,以充分发挥STM32F103的DMA传输优势。 总之,STM32F103的DMA传输可以大大提高数据传输的效率和性能,对于高速数据传输、数据采集和通信应用具有重要意义。 ### 回答2: STM32F103DMA是一种微控制器,可以使用DMA功能进行数据传输。在配置STM32F103DMA发送时,需要设置以下几个参数: 1. 设置DMA通道:首先要设置哪个DMA通道将要被使用。这需要根据不同的需求来选择。 2. 设置数据大小:接下来设置数据的大小,这指的是传输的数据大小。 3. 设置源地址和目标地址:接着需要设置源地址和目标地址。这两个地址用来指定数据的储存位置。源地址指的是需要传输的数据的地址,目标地址指的是需要把数据传输到哪个位置。 4. 设置传输模式:传输模式用来指定传输的方式。有三种传输方式,分别为:普通传输模式、循环传输模式、单次传输模式。 5. 设置传输方向:传输方向指的是数据的传输方向,有两种方向:从内存到外设,从外设到内存。 配置完成后,就可以开始传输数据了。需要注意的是,在传输过程中需要根据需要进行数据交换。这就意味着在数据传输结束后需要对数据进行清理和处理,以确保数据的正确性。同时,为了确保传输的速度,还需要选择合适的DMA周期,使其与传输数据的速率相匹配。在数据传输过程中,若出现问题,可以参考错误代码进行排除。 ### 回答3: STM32F103DMA是一款基于ARM Cortex-M3架构的微控制器,具备DMA传输功能。以下是stm32f103DMA发送配置的方法: 首先,需要在STM32的寄存器中设置DMA传输的参数。在初始化时,需要指定发送数据的长度、目标地址、数据源地址、传输模式等参数。然后使能DMA传输,并开启发送模式。此外,还需要对每个DMA通道进行配置,包括通道优先级、传输周期、循环模式等。 在具体实现中,可以使用示波器和串口助手等工具来检测数据的传输情况。在发送前,需要检查发送缓冲区的数据是否正确并进行清空;在接收后,需要对接收到的数据进行解析和处理。同时,还要注意数据长度严格的控制,以确保传输的正确性和稳定性。 总之,STM32F103DMA发送配置需要细心和谨慎,需要充分理解掌握参数设置、DMA通道配置、数据处理等方面的技术知识,才能保证数据的安全性和稳定性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值