迅维网

查看: 1323|回复: 0
打印 上一主题 下一主题

【NUCLEO-F412ZG试用体验】NO6+DMA测试(DMA到UART)

[复制链接]
跳转到指定楼层
1#
发表于 2016-12-20 10:30:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 山东 来自 山东

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
        
       今天做的是DMA实验,通过DMA将数据传到串口外设。DMA是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬件子系统(电脑外设),可以独立地直接读写系统存储器,而不需绕道 CPU。 DMA 用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。传输过程中, CPU 是闲置的,数据的高速传输不需要用到 CPU,节省了 CPU 的资源来做其他的操作,比如在例程中的点亮 LED 灯。这里的外设一般是指外设的数据寄存器,比如 ADC、 SPI、 I2C 等外设的数据寄存器。存储器一般是指片内 SRAM、外部存储器、片内 Flash 等。总结就是传输数据时使用 DMA 传输而不占用 CPU,解放 CPU,让 CPU 有足够的时间处理其它事情。
软件步骤:

                               
登录/注册后看高清大图

1. 设置串口6,选择串口GPIO


                               
登录/注册后看高清大图

2. 设置串口参数,如波特率、停止位等


                               
登录/注册后看高清大图

3. 设置中断


                               
登录/注册后看高清大图

4. 设置DMA参数,如传输方向、循环模式等


                               
登录/注册后看高清大图

5. 设置串口GPIO


编写程序:

int main(void)
{
      HAL_StatusTypeDef hal_status;

      uint8_t aRxBuffer[SENDBUFF_SIZE]= {

           0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,
           0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,0x20 };

        
     HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_DMA_Init();
    MX_USART6_UART_Init();
   hal_status = HAL_UART_Transmit_DMA(&huart6,aRxBuffer, SENDBUFF_SIZE);
}
测试结果:连接好串口线,打开调试助手会不断的接收到数据。


                               
登录/注册后看高清大图



您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复