打印
[技术问答]

M453板子PDMA实验的问题

[复制链接]
1345|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
DMA, pd, TE, se
我有一块M453开发板,买了一本《ARM Cortex-M4 微控制器原理与实践》。
我做基本模式实验,照着书上的代码输入程序,如下:
可是编译错误。
#include "stdio.h"
#include "M451Series.h"
#include "Common.h"
#include "Typedef.h"
#include "SmartM_M4.H"

UINT32 PDMA_TEST_LENGTH=64;
UINT8  g_szSrcArray[260];
UINT8  g_szDestArray[260];
UINT32 VOLATILE g_bIsTestOver=0;


int32_t main(void)
{
       
        PROTECT_REG
        (
                SYS_Init(PLL_CLOCK);                                                                                                //ϵͳʱÖÓ³õʼ»¯
                UART0_Init(115200);
                CLK_EnableModuleClock(PDMA_MODULE);
        )
  memset(g_szSrcArray,'Q',sizeof g_szSrcArray);
        PDMA_Open(0x4);
        PDMA_SetTransferCnt(2,PDMA_WIDTH_32,PDMA_TEST_LENGTH);
        PDMA_SetTransferAddr(2,(UINT32)g_szSrcArray,PDMA_SAR_INC,(UINT32)g_szDestArray,PDMA_DAR_INC);
        PDMA_SetTransferMode(2,PDMA_MEM,FALSE,0);
        PDMA_SetBurstType(2,PDMA_REQ_BURST,PDMA_BURST_4);
        PDMA_EnableInt(2,PDMA_INT_TRANS_DONE);
        NVIC_EnableIRQ(PDMA_IRQn);
        g_bIsTestOver=0;
        PDMA_Trigger(2);
        while(g_bIsTestOver==0);
        if(g_bIsTestOver==1)
                printf("test done...\n");
        else if(g_bIsTestOver==2)
                printf("target abort...\n");
        printf("Dest Array:\r\n");
        printf(g_szDestArray);
        PDMA_Close();
        while(1)
        {
               
       
        }
       
}
VOID PDMA_IRQHandler(VOID)
{
        UINT32 status=PDMA_GET_INT_STATUS();
        if(status&0x1)
        {
                if(PDMA_GET_ABORT_STS()&0X4)
                        g_bIsTestOver=2;
                PDMA_CLR_ABORT_FLAG(PDMA_ABTSTS_ABTIFn_Msk);
        }
        else if(status&0x2)
        {
                if(PDMA_GET_TD_STS()&0X4)
                        g_bIsTestOver=1;
                PDMA_CLR_TD_FLAG(PDMA_TDSTS_TDIFn_Msk);
        }
        else
                printf("unkown interrupt!\n");
}

编译错误如下:

请高手指教,如何解决?谢谢!
沙发
09kk小熊| | 2016-5-7 11:02 | 只看该作者
这本书要用对应SDK才可以直接用,跟官网下载的SDK还不太一样,或者你直接用官网下载的例程也可以用的

使用特权

评论回复
板凳
JY-DX-JY|  楼主 | 2016-5-7 11:40 | 只看该作者
09kk小熊 发表于 2016-5-7 11:02
这本书要用对应SDK才可以直接用,跟官网下载的SDK还不太一样,或者你直接用官网下载的例程也可以用的 ...

谢谢!

使用特权

评论回复
地板
玛尼玛尼哄| | 2016-5-7 15:55 | 只看该作者
按照那书上的如果可以把全部外设都搞一遍,也是可以的。

使用特权

评论回复
5
neeringstu| | 2016-5-7 22:31 | 只看该作者
书上的代码可能和你的软件版本不兼容,也有可能他自己也是抄来的

使用特权

评论回复
6
ideafor| | 2016-5-8 20:43 | 只看该作者
有没有遗漏的代码没有输入进去的啊

使用特权

评论回复
7
zhuotuzi| | 2016-5-8 22:45 | 只看该作者
DMA好用不,是不是配置好了在中断后就能实现自动传送

使用特权

评论回复
8
JY-DX-JY|  楼主 | 2016-5-9 08:11 | 只看该作者
好用

使用特权

评论回复
9
leaddxy| | 2016-5-11 07:26 | 只看该作者
看这书还不如看TRM,什么玩意儿!上当买了,看了一半天,扔一边去!翻译TRM,抄官方代码,还没细节描述

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:晴天响霹雳,平地一声雷。

245

主题

3351

帖子

30

粉丝