查看: 3287|回复: 6

[已解决] kl25 利用DMA方式写DAC0的数据寄存器(已解决)

[复制链接]

该用户从未签到

6

主题

26

帖子

0

注册会员

Rank: 2

积分
93
最后登录
2019-10-14
发表于 2016-7-6 09:21:35 | 显示全部楼层 |阅读模式
本帖最后由 XINQUAN-413503 于 2016-7-6 09:34 编辑


希望DMA从内存的一组数组中读取16位整数,然后赋给DAC 的buffer0中,但是12位的DAC,每个buffer分为低八位和高四位,怎样可以设置使得DMA的数直接传到DAC buffer中呢。
例程中
void LPLD_DAC_SetBufferDataN(DAC_Type *dacx, uint16 data, uint8 num)
{
  //参数检查
  ASSERT( (num <= 16)&&(num > 0) );  //判断数据序号

  dacx->DAT[num-1].DATL = data & 0x0FF;
  dacx->DAT[num-1].DATH = (data & 0xF00)>>8;
}


但是12位的DAC的数据寄存器r分为低八位和高四位,地址也是分开的4003f000(DAT0L),4003f001(DAT0H),.我现在给的是4003f000,结果寄存器中的高八位DAT0H没有数值,低八位DAT0L正确。应该写哪个地址?

kl25有没有DAC 用DMA传输的的历程








我知道答案 目前已有6人回答
回复

使用道具 举报

该用户从未签到

723

主题

6382

帖子

0

超级版主

Rank: 8Rank: 8

积分
25480
最后登录
2025-9-9
发表于 2016-7-6 10:02:39 | 显示全部楼层
楼主可以将代码先分享一下
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-13 08:29
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    531

    主题

    2048

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    210
    最后登录
    2018-8-14
    发表于 2016-7-6 15:39:01 | 显示全部楼层
    楼主解决了麻烦分享下
    签到 签到
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    26

    帖子

    0

    注册会员

    Rank: 2

    积分
    93
    最后登录
    2019-10-14
     楼主| 发表于 2016-7-6 18:22:56 | 显示全部楼层
    DMA的配置,关键是源地址和目标地址都要设置为 指向16位的地址指针,并设置各自的地址递增
    111.png
    222.png
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    26

    帖子

    0

    注册会员

    Rank: 2

    积分
    93
    最后登录
    2019-10-14
     楼主| 发表于 2016-7-11 18:38:35 | 显示全部楼层
    小恩GG 发表于 2016-7-6 10:02
    楼主可以将代码先分享一下

    MKL25 中DAC0不能够硬件触发DMA吗,必须用软件触发DMA启动转换?另外参考手册中DMA请求源Table-3-20表中 DAC0的请求源描述下     '——' 代表什么意思?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6

    主题

    26

    帖子

    0

    注册会员

    Rank: 2

    积分
    93
    最后登录
    2019-10-14
     楼主| 发表于 2016-7-11 18:41:23 | 显示全部楼层
    MKL25 中DAC0不能够硬件触发DMA吗,必须用软件触发DMA启动转换?另外参考手册中DMA请求源Table-3-20表中 DAC0的请求源描述下     '——' 代表什么意思?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    723

    主题

    6382

    帖子

    0

    超级版主

    Rank: 8Rank: 8

    积分
    25480
    最后登录
    2025-9-9
    发表于 2016-7-12 09:21:49 | 显示全部楼层
    XINQUAN-413503 发表于 2016-7-11 18:41
    MKL25 中DAC0不能够硬件触发DMA吗,必须用软件触发DMA启动转换?另外参考手册中DMA请求源Table-3-20表中 DA ...

    可以通过PIT硬件触发DAC的,具体你可以参考参考手册中的Table 3-1. Module to Module Interconnects
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-9-9 16:16 , Processed in 0.101654 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表