TMS320F28377D学习日志:day2点亮LED


一、28377开发板的led电路分析

led电路图:
LED电路LED串联1k欧限流电阻,正极接3.3V电源,负极接28377引脚。3个LED用共阳接法。当引脚P89输出低电平,LED1点亮;当引脚P89输出高电平,LED1熄灭。其他LED同样受P91、P93引脚控制亮灭。

二、28377的GPIO相关寄存器介绍

2.1 前言

28377引脚是多功能复用的,因此需要将P89、P91和P93设置为GPIO功能,并上拉输出。
在2837xD系列的DSP芯片中,有高达8组I/O端口,它们的关系为

Port GPIO
A 0~31
B 32~63
C 64~95
D 96~127
E 128~159
F 160~191
G 192~223
H 224~255

因此点亮LED所需的P89、P91和P93引脚属于PortC.
此外值得一提的是,在TI官方资料《TMS320F2837xD Dual-Core Microcontrollers Technical Reference Manual (Rev. K)》(可在TI官网下载)中可以看到2837xD系列的外设复用、CPU复用和引脚选项只能通过CPU1进行配置。
在这里插入图片描述
所以该工程只使用CPU1进行GPIO的配置与控制。

2.2 GPySET 寄存器介绍

该寄存器用于驱动引脚输出为高电平,且不影响其他的引脚。GPySET其中的y用于指代不同引脚的Port,例如P89就是GPCSET。因此设置P89为高电平,可以采用下列程序:

GpioDataRegs.GPCSET.bit.GPIO89 = 1//用于GPIO89置高

同时在程序中选中GPCSET按下F3可以看到GPCSETGPCSET_REG类型的数据,GPCSET_REG的定义如下:

union GPCSET_REG {
   
    Uint32  all;
    struct  GPCSET_BITS  bit;
};

其中GPCSET_BITS 为包含GPIO64~GPIO95的结构体。

struct GPCCLEAR_BITS {
                     // bits description
    Uint16 GPIO64:1;                    // 0 Output Clear bit for this pin
    Uint16 GPIO65:1;                    // 1 Output Clear bit for this pin
    Uint16 GPIO66:1;                    // 2 Output Clear bit for this pin
    Uint16 GPIO67:1;                    // 3 Output Clear bit for this pin
    ...
    }

2.3 GPyCLEAR 寄存器介绍

与GPySET刚好相反,GPyCLEAR 用于驱动引脚输出为底电平。同样的,设置P89为低电平,可以采用下列程序:

GpioDataRegs.</
### Simulink 28377 使用教程及相关错误解决方案 关于Simulink的使用教程和错误解决方案,可以从以下几个方面入手: #### 一、Simulink基础教程 对于初学者而言,了解如何将Simulink模型集成到其他开发环境中是非常重要的。例如,在NI VeriStand中可以通过导入`.dll`文件来加载由Matlab/Simulink/Stateflow创建的算法或仿真模型[^1]。这表明了Simulink在与其他软件协同工作中的灵活性。 如果需要学习具体的Simulink操作流程,可以参考一些公开的教学资源或者官方文档。这些资料通常会详细介绍从基本建模到复杂系统仿真的全过程。此外,针对特定需求(如MIL测试),也有专门的技术指南可供查阅[^2]。 #### 二、常见错误及其解决办法 当用户提到“Simulink 28377”的时候,可能是指某个具体的功能编号或者是遇到了某种类型的错误代码。以下是几种常见的Simulink问题及对应的处理方式: 1. **兼容性问题** 如果发现某些功能无法正常运行,则可能是由于当前使用的MATLAB/Simulink版本不匹配所引起。建议确认目标平台的支持情况并升级至最新稳定版。 2. **自动化测试失败** 自动化测试过程中可能会因为脚本配置不当而导致异常终止。此时应仔细检查相关设置是否正确无误,并参照已有的成功实例调整参数。 3. **模型结构过于复杂** 对于非常庞大的模型来说,计算负担过重可能导致性能下降甚至崩溃现象发生。优化策略包括简化不必要的逻辑分支、分模块调试以及采用增量编译等方式提高效率。 4. **外部接口连接不稳定** 当涉及到第三方库调用时,网络延迟或其他因素也可能干扰数据交换过程。确保所有依赖项均已妥善安装且路径清晰可见给定环境下即可缓解此类状况。 #### 示例代码片段展示 下面给出一段简单的Python风格伪代码用于说明如何通过命令行启动一个预设好的simulink session: ```python import matlab.engine def start_simulink_session(): eng = matlab.engine.start_matlab() try: result = eng.evalc('open_system(\'myModel\');') print(result) finally: eng.quit() if __name__ == "__main__": start_simulink_session() ``` 此段程序展示了怎样借助matlab engine API远程控制本地部署的服务端执行指定动作序列——这里即打开名为'myModel' 的 simulink 文件对象。 ---
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值