OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2426|回复: 1

DMA 接收BUFFER 不能赋值给其他变量

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-6-17
在线时间
1 小时
发表于 2020-7-10 13:19:09 | 显示全部楼层 |阅读模式
file:///C:\Users\Administrator\Documents\Tencent Files\3004738251\Image\C2C\I0U)OWU5D86YFQ%N{~FL~Y8.png
file:///C:\Users\Administrator\Documents\Tencent Files\3004738251\Image\C2C\I0U)OWU5D86YFQ%N{~FL~Y8.png
AD7175_regs[ID_st_reg].value = a500
RxData[1] = c
RxData[2] = de
Temp[0] = a5
Temp[1] = 0
Temp[2] = 0

这是串口上显示的数据


    while(wTransferState != TRANSFER_COMPLETE){;}
    {
//        unID = ((u32)RxData[1])<<8 | RxData[2];
        ptrBuffer = &RxData[1];
        AD7175_regs[ID_st_reg].value = 0;
        for(i = 1; i < AD7175_regs[ID_st_reg].size + 1; i++)
        {
                AD7175_regs[ID_st_reg].value <<= 8;
                AD7175_regs[ID_st_reg].value += *ptrBuffer; //RxData[1],RxData[2]
                ptrBuffer++;
        }   
//        memcpy(Temp,&RxData[1],2);

        ptrBuffer = &RxData[0];
        Temp[0] = *ptrBuffer;
        ptrBuffer++;
        Temp[1] = *ptrBuffer;       //RxData[1]
        ptrBuffer++;
        Temp[2] = *ptrBuffer;       //RxData[2]

        u2_printf("AD7175_regs[ID_st_reg].value = %x\r\n",AD7175_regs[ID_st_reg].value);
        u2_printf("RxData[1] = %x\r\n",RxData[1]);
        u2_printf("RxData[2] = %x\r\n",RxData[2]);
        u2_printf("Temp[0] = %x\r\n",Temp[0]);      //RxData[0]
        u2_printf("Temp[1] = %x\r\n",Temp[1]);       //RxData[1]
        u2_printf("Temp[2] = %x\r\n",Temp[2]);       //RxData[2]

这是程序

发现断点,数据正常,全速时,赋值就错了,不知道什么原因?
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-6-17
在线时间
1 小时
 楼主| 发表于 2020-7-10 13:20:35 | 显示全部楼层
不知道有人知道吗?麻烦告知,谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 23:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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