DSP28335入门学习——第一节:工程项目创建

news2025/5/13 3:48:31

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做!

本文写于:2025.04.20

DSP28335开发板学习——第一节:工程项目创建

  • 前言
  • 开发板说明
  • 引用
  • 解答和科普
  • 一、工程创建
  • 二、工程项目创建
  • 三、仿真下载并实验
  • 问题
  • 总结

前言

   本次笔记是用来记录我的学习过程,同时把我需要的困难和思考记下来,有助于我的学习,同时也作为一种习惯,可以督促我学习,是一个激励自己的过程,让我们开始32单片机的学习之路。
   欢迎大家给我提意见,能给我的嵌入式之旅提供方向和路线,现在作为小白,我就先学习32单片机了,就跟着B站上的江协科技开始学习了.
   在这里会记录下江协科技32单片机开发板的配套视频教程所作的实验和学习笔记内容,因为我之前有一个开发板,我大概率会用我的板子模仿着来做.让我们一起加油!
   另外为了增强我的学习效果:每次笔记把我不知道或者问题在后面提出来,再下一篇开头作为解答!

开发板说明

   本人采用的是慧净的开发板,因为这个板子是我N年前就买的板子,索性就拿来用了。另外我也购买了江科大的学习套间。
   原理图如下
1、开发板原理图
在这里插入图片描述
在这里插入图片描述

2、STM32F103C6和51对比
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下图是实物图
在这里插入图片描述

引用

还参考了下图中的书籍:

解答和科普

一、工程创建

首先是官方的固件库:
在这里插入图片描述
第一个文件夹存放了DSP2833需要的一些外设内核,DSP运算库,cmt配置文件;
第二个文件存放了外设的头文件,以及是否使用操作系统的一些文件;主要是一些头文件
在这里插入图片描述
Cmd存放了片内的一些RAM,以及flash存储地址和容量的一些分频启动文件。
在这里插入图片描述
第一个文件时我们调试这个程序,将程序下载到芯片内部的RAM当中来进行调试和仿真,等程序下载成功,调试成功之后,再将程序烧录到F2833的flash中,烧录到flash当作就需要第2个文件。
Gel:通常是存放一些扩展是通用扩展的一些,扩展CCS的功能,方便程序的调试。调用比如需要批量的查看计算器的变量。
在这里插入图片描述
这个存放通用外设的头文件。通用文件的路径。
在这里插入图片描述
Lib主要存放f2833的一些运算库文件,多的是IQmath和rts2800。
在这里插入图片描述
Source:是用来存放283内核外设驱动,源文件C文件。Adc校准是,Asm和延迟函数。
在这里插入图片描述
存放的都是头文件,配置文件,以及是否使用操作系统里面的bios文件等等;
在这里插入图片描述
在这里插入图片描述
Cmd存放的是是否使用操作系统,通常不使用操作系统。
在这里插入图片描述
Gel: 外设的。Gel文件
在这里插入图片描述
Inc是头文件,并且里面的跟source是对应的头文件
在这里插入图片描述
存放全局的一些文件,全局定义的一些寄存器,像前面介绍的GPIO的一些寄存器,结构体定义,以及使用关键字将寄存器指定到存储空间。

在这里插入图片描述
在这里插入图片描述
Cmd的配置文件,仿真器的一个配置文件,include是一些需要调用的头文件,以及编译器需要的一些环境文件,默认的路径。
在这里插入图片描述

二、工程项目创建

好接下来演示创建工程:
官方提供的库文件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
把这个删除了RAM_lnk.cmd
在这里插入图片描述
这个是新建工程下的文件:
在这里插入图片描述
新建文件夹进行管理;
在这里插入图片描述
CMD放入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成CMD文件夹
Libraries放入gel
在这里插入图片描述
在这里插入图片描述
放入lib库,我这里只放了一个
在这里插入图片描述
完成这个
下一个完成include
在这里插入图片描述
在这里插入图片描述
把官方的库文件的头文件都加进来,复制后加入。
完成这个创建
Source是吧库文件中的两个都复制过来
在这里插入图片描述
这样的话都完成了,再添加一个main.c
在这里插入图片描述
进行编译:出现错误
1、你没加头文件的路径
2、你的C文件有重复定义

解决办法:

在这里插入图片描述
加上头文件路径:看清有的是在上面加入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、重复的移出:
在这里插入图片描述
右键
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

完成这三个部分有重复,重复定义了,这样就完成了创建。
在这里插入图片描述
总结:
1、加入必要的文件,并把头文件加入到路径之中,这样才能找到;
2、加的多了会有重复定义,先把有重复定义的进行移出工程;
3、就是lib库出问题,就是下面的办法。

三、仿真下载并实验

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择哪个out文件
在这里插入图片描述
运行

DSPF28335LED闪烁,研旭实用版D1闪烁


实验2、GPIO点灯

#include "DSP2833x_Device.h"     // DSP2833x Headerfile Include File
#include "DSP2833x_Examples.h"
void GIOP_Init(void)
{
	EALLOW;
	GpioCtrlRegs.GPBMUX1.bit.GPIO40=0;//
	GpioCtrlRegs.GPBDIR.bit.GPIO40 =1;
	GpioCtrlRegs.GPBPUD.bit.GPIO40 =0;
	GpioDataRegs.GPBCLEAR.bit.GPIO40=1;
//  GpioCtrlRegs.GPAMUX1.bit.GPIO6=0;
//	GpioCtrlRegs.GPADIR.bit.GPIO6 =1;
//	GpioCtrlRegs.GPAPUD.bit.GPIO6 =0;
	EDIS;
}



void main(void)
{
InitSysCtrl();

	GIOP_Init();

	while(1)
	{
		DELAY_US (1000*500);
		GpioDataRegs.GPBTOGGLE.bit.GPIO40=1;
	}
}

本次实验就是控制GPIO40,进行点灯,通过延迟函数,实现LED闪烁。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
整个原理图是核心半的GPIO40,对应的是J4的XA0,此引脚对应实用底板的J1的37引脚A00,又连接到JP1的1号引脚A00,用杜邦线引出来接到了51的LED引脚。在这里插入图片描述
因此实现了DSP28335控制GPIO40实现了控制LED闪烁的实验。

GPIO40点亮LED灯

问题

加入多个lib文件会出错:
你可以进行移出或者在这方面研究;
在这里插入图片描述
在这里插入图片描述

总结

本节课主要进行看工程创建,主要是建立的时候,现在还不太懂各个的含义,出现了多次重复定义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2339414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MDG 实现后端主数据变更后快照自动刷新的相关设置

文章目录 前言实现过程BGRFC期初配置(可选)设置 MDG快照 BGRFC维护BP出站功能模块 监控 前言 众所周知,在MDG变更请求创建的同时,所有reuse模型实体对应的快照snapshot数据都会记录下来。随后在CR中,用户可以修改这些…

【Linux】Linux 操作系统 - 05 , 软件包管理器和 vim 编辑器的使用 !

文章目录 前言一、软件包管理器1 . 软件安装2 . 包管理器3 . Linux 生态 二、软件安装 、卸载三、vim 的使用1 . 什么是 vim ?2 . vim 多模式3 . 命令模式 - 命令4 . 底行模式 - 命令5. 插入模式6 . 替换模式7 . V-BLOCK 模式8 . 技巧补充 总结 前言 本篇笔者将会对软件包管理…

【操作系统原理05】存储器管理

大纲 文章目录 大纲一. 内存基础知识0.大纲1.什么是内存2.进程运行基本原理2.1 指令工作原理2.2逻辑地址VS物理地址2.3 从写程序到程序运行完整运行三种链接方式 二.内存管理0.大纲1.操作系统进行内存管理 三.覆盖与交换0.大纲1.覆盖技术2.交换技术 四.连续分配管理方式0.大纲1…

学习笔记—C++—string(练习题)

练习题 仅仅反转字母 917. 仅仅反转字母 - 力扣(LeetCode) 题目 给你一个字符串 s ,根据下述规则反转字符串: 所有非英文字母保留在原有位置。所有英文字母(小写或大写)位置反转。 返回反转后的 s 。…

[Swift]Xcode模拟器无法请求http接口问题

1.以前偷懒一直是这样设置 <key>NSAppTransportSecurity</key> <dict><key>NSAllowsArbitraryLoads</key><true/><key>NSAllowsArbitraryLoadsInWebContent</key><true/> </dict> 现在我在Xcode16.3上&#xff…

返回之术:用 navigate(-1) 闯荡前端江湖

前言 在前端这片江湖,页面跳转宛如轻功水上漂,来去无踪,飘忽不定。但其中有一门绝学,专治“回头是岸”之需求,那便是 React Router 中的 navigate(-1) 身法。 昔日我闯荡项目林,误入“下一页”禁地,一脚踏空,身陷页面迷阵。正当我焦头烂额之际,师父袖袍一挥,口吐一…

网络编程3

day3 一、服务器模型 1.循环服务器模型 同一个时刻只能响应一个客户端的请求 2.并发服务器模型 2.1含义 同一个时刻可以响应多个客户端的请求&#xff0c;常用的模型有多进程模型/多线程模型/IO多路复用模型。 2.2多进程模型 每来一个客户端连接&#xff0c;开一个子进程来专门…

海拔与大气压关系,大气压单位,气压传感器对比

mbmbar 毫巴(百帕) mbar 毫巴(百帕) hPa 百帕 1百帕1毫巴3/4毫米水银柱 1Kpa10百帕7.5毫米汞柱7.5mmhg 1Bar0.1MPa1000mba1000hpa100*7.5mmhg75mmhg1个大气压 HP303B HP303S HP203N BMP280

Linux 进程概念补充 (自用)

进程概念 内核进程进程状态内存泄漏进程调度。Linux真实调度算法环境变量 内核 狭义上的操作系统指的是 内核就是进程管理进程调度&#xff0c;文件系统等等。 广义上的操作系统其实在外壳指令这些。封装了系统调用的东西。 进程 课本概念程序的一个基本实例 内核观点&#…

PyTorch - Tensor 学习笔记

上层链接&#xff1a;PyTorch 学习笔记-CSDN博客 Tensor 初始化Tensor import torch import numpy as np# 1、直接从数据创建张量。数据类型是自动推断的 data [[1, 2],[3, 4]] x_data torch.tensor(data)torch.tensor([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]])输出&am…

Navicat、DataGrip、DBeaver在渲染 BOOLEAN 类型字段时的一种特殊“视觉风格”

文章目录 前言✅ 为什么 Boolean 字段显示为 [ ]&#xff1f;✅ 如何验证实际数据类型&#xff1f;✅ 小结 前言 看到的 deleted: [ ] 并不是 Prisma 的问题&#xff0c;而是数据库客户端&#xff08;如 Navicat、DataGrip、DBeaver&#xff09;在渲染 BOOLEAN 类型字段时的一种…

基于 Vue3 + ECharts + GeoJson 实现区域地图钻取功能详解

文章目录 前言一、实现步骤1. 项目初始化2. 准备GeoJson数据3. 创建地图组件4. 创建主页面组件5. 使用组件 二、功能亮点三、性能优化建议四、常见问题解决五、结语六、实战demo七、资源下载 前言 在数据可视化领域&#xff0c;地图展示是一种非常直观的表现形式。而地图钻取&…

安卓学习24 -- 网络

1 整体架构 &#xff08;出处见水印&#xff09; 这两张是能找到的比较清楚的图。目前可以看出&#xff0c;底层的网络业务&#xff0c;还是传统的linux内核提供。&#xff08;注&#xff1a;这两个图我个人觉得不是非常对。。。&#xff09; 在安卓上增加的两个比较重要的部…

github新建一个远程仓库并添加了README.md,本地git仓库无法push

1.本地git仓库与远程仓库绑定 2.push时报错&#xff0c;本地的 main 分支落后于远程仓库的 main 分支&#xff08;即远程有更新&#xff0c;但你本地没有&#xff09;&#xff0c;需要拉取远程的仓库--->在merge合并&#xff08;解决冲突&#xff09;--->push 3.但是git …

Python:使用web框架Flask搭建网站

Date: 2025.04.19 20:30:43 author: lijianzhan Flask 是一个轻量级的 Python Web 开发框架&#xff0c;以简洁灵活著称&#xff0c;适合快速构建中小型 Web 应用或 API 服务。以下是 Flask 的核心概念、使用方法和实践指南 Flask 的核心特点&#xff1a; 轻量级 核心代码仅约…

Kotlin delay方法解析

本文记录了kotlin协程(Android)中delay方法的字节码实现&#xff0c;并解析了delay方法如何实现挂起操作。 一、delay方法介绍 1.1、delay方法使用举例 class TestDelay {suspend fun testDelay() {Log.d("TestDelay", "before delay")delay(1000)Log.d…

【Vulkan 入门系列】创建描述符集布局和图形管线(五)

描述符集布局定义了着色器如何访问资源&#xff08;如缓冲区和图像&#xff09;&#xff0c;是渲染管线配置的关键部分。图形管线定义了从顶点数据到最终像素输出的整个处理流程&#xff0c;包括可编程阶段&#xff08;如顶点和片段着色器&#xff09;和固定功能阶段&#xff0…

mysql中in的用法详解

MySQL 中 IN 操作符用法详解 IN 是 MySQL 中用于多值筛选的高效操作符&#xff0c;常用于 WHERE 子句&#xff0c;可替代多个 OR 条件&#xff0c;简化查询逻辑并提升可读性。以下从基础语法、应用场景、性能优化、常见问题及高级技巧进行全方位解析。 一、基础语法与优势 1.…

MySQL为什么默认使用RR隔离级别?

大家好&#xff0c;我是锋哥。今天分享关于【MySQL为什么默认使用RR隔离级别?】面试题。希望对大家有帮助&#xff1b; MySQL为什么默认使用RR隔离级别? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 MySQL 默认使用 RR&#xff08;Repeatable Read&#xff09;…

施磊老师基于muduo网络库的集群聊天服务器(二)

文章目录 Cmake简单介绍Cmake与MakefileCmake配置CmakeLists.txt 编写完整cmake例子文件夹杂乱问题多级目录Cmakevscode 极其推荐 的 cmake方式 Mysql环境与编程mysql简单使用User表Friend表AllGroup表GroupUser表OfflineMessage表 集群聊天项目工程目录创建网络模块代码Chatse…