DSP28335使用心得

板子烧写

烧写步骤

  • 将28335供电,连接JTAG仿真器
  • 打开setup CCS软件,选择XDS100USB DSP Emulator,即下载的仿真器
  • 打开CCS 3.3软件
  • 如果没有连接上,则点击debug-->connect,连接成功的话左下角会有提示
  • 打开工程,后缀名是pjt
  • 进行编译链接
  • 点击file-->load program,在一个debug的文件夹里选择后缀名是.out的文件,打开之后就开始擦除并下载了
  • 完成后,可以点击debug-->run,即可观察单片机按照程序的指令运行了
  • 如果不想运行了,首先要debug-->disconnect,然后退出CCS,最后再拔出JTAG和电源线,否则很容易出现类似地址错误的问题等等。。。

#

注意事项

  • 以上所有,按照步骤来!!!

常用模块

GPIO

初始哈步骤
  • EALLOW
  • 配置GPIO是否上拉、出入输出使能、相应初始状态以及相应的mux寄存器需要设置为0(仅适用GPIO功能时)
  • EDIS
基本代码
  • 设置为输入

    EALLOW;
    GpioCtrlRegs.GPBPUD.bit.GPIO51 = 0;  // Enable pullup on GPIO51
    GpioCtrlRegs.GPBMUX2.bit.GPIO51 = 0; // 设置为一般IO口
    GpioCtrlRegs.GPBDIR.bit.GPIO51  = 0; // IO口方向为输入
    EDIS;
    
  • 设置为输出

    EALLOW;
    GpioCtrlRegs.GPAPUD.bit.GPIO0 = 0;                                     
    GpioDataRegs.GPASET.bit.GPIO0 = 1;          //设置初始状态为1
    //GpioDataRegs.GPACLEAR.bit.GPIO0 = 1;      //设置初始状态为0   
    GpioCtrlRegs.GPAMUX1.bit.GPIO0 = 0;                                    
    GpioCtrlRegs.GPADIR.bit.GPIO0 = 1;
    EDIS;
    

#

注意
  • GPIO分组,不同的号

PIE(peripheral interrupt expansion)

  • 外部中断(GPIO0~GPIO63)

中断的使用方法

  • 初始化PIE控制寄存器

  • 使能所有中断

  • 初始化中断向量表

  • 开中断

ePWM

  • 基本功能
    • 时间基准子模块
    • 计数比较子模块
    • 动作限定子模块
    • 死区控制子模块
    • pWM斩波子模块
    • 错误控制子模块
    • 事件触发子模块

外扩RAM读写

步骤
  • 写入0xAA
  • 写入0x55
  • 写入需要写入的内容
示例代码
    for(i = 0; i < 0x4FFFF; i++)
    {
        *(ExRamStart + i) = 0x5555; 
        //ExRamStart是RAM的起始地址,可以是0x200000之类的
        if(*(ExRamStart + i) != 0x5555)
        {
            asm ("      ESTOP0");//error 
        }
    }

    for(i = 0; i < 0x4FFFF; i++)
    {
        *(ExRamStart + i) = 0xAAAA;
        if(*(ExRamStart + i) != 0xAAAA)
        {
                asm ("      ESTOP0");//error 
        }
    }

    for(i = 0; i< 0xFFFF; i++)
    {
        *(ExRamStart + i) = i;
        if(*(ExRamStart + i) != i)
        {
            asm ("      ESTOP0");//error 
        }
    }
         asm ("      ESTOP0");//ok  
}

外扩Flash读写实验

步骤
  • 初始化外部接口扩展(Xintf)
  • 初始化DSP内部Ram区
  • 清除DSP外扩FLASH(SST39VF800)内容
  • 写数据到SST39VF800(外扩Flash)
  • 清除RAM的数据
  • 将Flash中的数据读到另一块RAM中
基本代码
按照示例程序操作即可

外部中断

  • 4
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
DSP28335使用sprintf函数可以将格式化的数据写入一个字符串缓冲区中。根据引用\[2\]中的代码示例,sprintf函数的使用方法如下: sprintf(buffer, " % .2f,% .2f,% d,% d,% d,% d,% .2f\n", setN_B,samplingValue,(int)(Velocity_KP*10),(int)(Velocity_KI*10),(int)(Velocity_KD*10),(int)SampleT,PowerAverage); 其中,buffer是一个字符数组,用于存储格式化后的字符串。引用\[3\]中提到,在C2000系列中,char类型占用16位双字节,int类型也是16位,而long类型才是32位。因此,如果要打印32位的数据,需要在打印格式字符中加上%l参数。而%d和%f只能打印16位的数据,打印32位的数据会只保留高字节的数据。 所以,根据你的需求,你可以使用sprintf函数将变量setN_B、samplingValue、Velocity_KP、Velocity_KI、Velocity_KD、SampleT和PowerAverage的值格式化为字符串,并存储在buffer中。然后,你可以使用printf函数将buffer中的字符串打印出来。 #### 引用[.reference_title] - *1* [DSP28335串口打印 printf](https://blog.csdn.net/weixin_51683280/article/details/125052503)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [关于DSP28335printf重定向的一个解决方案](https://blog.csdn.net/qq_30759585/article/details/121942549)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

littletomatodonkey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值