MSP430F5529 入门心得

2023-05-16

2021年全国大学生电子设计竞赛因为疫情而推迟了,因为电赛里必有一道题目是要使用TI的处理器而之前用习惯了STM32系列处理器没有使用过TI的板子,就拿实验室现有的TI的板子MSP4305529LP学习,为推迟的电赛做准备。其实掌握了STM32,AT89C51等单片机,MSP430单片机也是非常好入手的。以下,将我在学习MSP430遇到的一些小问题,以及一些实用干货,代码的分析方法分享出来供大家参考!

一、环境搭建

1.软件下载

本人使用的IAR开发MSP430,当然大家使用CCS也可以。我将IAR软件的安装包分享到评论区的链接中,如有需要自取。

2.安装方法

大家参考这篇文章即可

IAR7.8 安装教程

教程大家就按照这个来,在破解时一定要选择MSP430以免破解失败。

3.烧录程序配置

我们在接触新的开发板时,第一个碰到的问题就是如何烧录程序,JLINK? USB?还是有专门的烧录器?
烧录时,我们只用将开发板上的USB端口与PC段相连,电脑中自动就会下载相应的驱动。但是你写好了代码直接点击IAR中的烧录按钮,发现会碰到许多莫名奇妙的问题,如下所示。之所以碰到这些问题其实是我们IAR软件中有些东西没有配置好。
在这里插入图片描述
解决方法

(1)右键 IAR左侧WorkSpace的工程文件 在这里插入图片描述
选择FET Debugger 系统默认的串口号可能并不是我们下载的串口号。

在这里插入图片描述

而真正的串口号去电脑的设备管理器查看(如下图)

在这里插入图片描述

我们看到会有两个串口号 一个是Debug另一个是UART 所以COM 5才是正确的,我们需要手动修改过来。

(2)选择Linker 勾选Debug information forC-SPY
在这里插入图片描述(3) iar->Tools->options->stack->去掉选项“stack pointer(s) not valid until program reaches”
在这里插入图片描述

就可以成功下载了!

但是我们在下载时遇到了一个头疼的问题烧录程序的同时竟然也进入了Debug模式。
在这里插入图片描述
那我们可以设置一个只进行下载的快捷键
在这里插入图片描述

Project-------Download active application
将其拖入工具栏中即可之后我们在下载是直接点击快捷按钮就行,更加的方便。

在这里插入图片描述
注意:在程序下载完成后,必须按下开发板的复位键,程序才可以运行。

二、点灯程序分析

拿到一个自己没使用过的开发板第一个程序就是点灯。就像其他语言编程中的 Hello world一样有着很特别意义

如果自己写的程序烧录进去LED亮了,那么就可以说明这块板子的硬件,包括电源、处理器、引脚等等是没有问题了,还说明软件的烧录,运行等都是正常的。

那么我们针对TI给的例程进行代码的分析,通过点灯的程序为大家抛砖引玉一下,学会这个板子大致的学习方法。
在这里插入图片描述

首先大家看到主函数的第一句就懵逼了,这tm都是啥啊。其实大家不用被表面所吓到。根据注释呢 我们这行程序的目的是关闭看门狗。那我们就需要去查用户手册,去查找控制看门狗对应的寄存器。

在这里插入图片描述
WDTCTL = WDTPW + WDTHOLD;

可见我们就是对看门狗定时器的控制寄存器(WDTCTL)的8-15位和第7位进行了操作,而其他都没有动也就是默认状态0。那为什么几个英文就直接对寄存器操作了呢?其实呢TI公司为了考虑程序的可读性,开发的速度等等,为大家提供了库。就是将对应寄存器的操作进行了宏定义。
我们可以在程序中点击WDTPW Go to definition 去库函数查看他所代表的意义。

在这里插入图片描述

我们看到这一串字母代表的其实就是0x5A,就像手册中所说当我们进行写操作时就必须对他的高八位赋值0x5A.又因为一般来说这个寄存器的初始值为0x00;所以我们就可以直接**+WDTPW** 进行操作

当我们写进了0x5A就代表我们可以对寄存器的其他位进行操作了,我们的目的是要关闭看门狗。所以我们去手册查询是寄存器的哪一位控制着看门狗的开关。手册中指出Bit 7是控制开关的。那我们就要将第七位赋值为1才可以关闭。
在这里插入图片描述

我们可以在程序中点击WDTHOLD Go to definition 去库函数查看他所代表的意义。
在这里插入图片描述
我们看到他的宏定义代表的是0x0080 其实也就是0000 0000 1000 0000的二进制数据。也就是第七位为1
我们将两个数值相加。其实总的就是赋值给这个寄存器0x5A80。当然我们也可以直接在程序中写0x5A80,但是在别人看代码时或者之后你自己在看代码时还要费劲的去查手册。很是麻烦所以我们尽量使用宏定义。

在你没有使用到看门狗时,关闭看门狗通常是我们写程序初始化的第一步。初始化过后,我们就要将LED所对应的IO进行初始化。去设置他是输出还是输入。高电平还是低电平。
在这里插入图片描述

我们要去查用户手册有关I/O的寄存器
在这里插入图片描述
我们可以发现这个DIR其实是I/O的方向寄存器设置为0为输入(默认),设置为1为输出。

我们要点灯,所以我们要将对应的寄存器置为1 输出状态。我们应该怎样操作呢?

我们可以在程序中点击 BIT7 Go to definition 去库函数查看他所代表的意义。

BIT7 其实就是将DIR寄存器的第七位设置为1.那么我们就成功将P4.7设置为输出模式。P1.0同理。
因为我们的MSP430F5529板载的两个LED对应的管脚就是P4.7和P1.0。所以我们要对其进行操作。

重要 ‼‼

那么我们为什么要 P4DIR |= BIT7 这么写呢?本身的意思是 P4DIR= P4DIR | BIT7

通过一个或操作我们可以避免对其他的管脚造成干扰。比如0x80 我们进行或运算因为0|0=0
1|0=1的所以他只对第七位有作用。如果我们直接给他赋值0x80 那么我们其他管脚本身为1的就会被清零。这是我们进行或的目的。

同样我们如果要对某一位置0;P6OUT&=~BIT3我们通过取反再去按位与,达到置0的效果并且不干扰其他的端口。

不明白的同学可以去纸上展开成二进制画一画,大家自然就会明白。

**方向设置好了 我们只用将其输出改变即可实现LED的亮灭。**所以while(1)中我们只用改变管脚的输出即可。

在这里插入图片描述
这是输出寄存器的手册说明
在这里插入图片描述
当我们对某一位设置成输出模式那我们将其输出寄存器的值置1,就可以输出高电平,即可以点亮LED。输出低电平就熄灭LED。非常的简单。

我们在程序中进行了异或的操作
P1OUT ^= BIT0;
其效果就是电平的反转 比如我们 P1OUT 为0那么与1异或 就为1。那么这时P1OUT就为1我们继续与1异或,输出就为0从而达到一个翻转的效果。

最终我们进行一个延时操作。就可以看到开发板上的两个板载LED灯闪烁的现象,我们的效果就达到了。
在这里插入图片描述
通过对点灯程序的分析,目的是为了抛砖引玉,举一反三。我们之后调模块就是看他的寄存器是怎么赋值的。其实MSP430相比于stm32就是对寄存器的直接操作比较多而已,道理是一样的。相信大家一定会快速上手的!

一定要多看手册!!!
一定要多看手册!!!
一定要多看手册!!!

重要的事说三遍

💛💛💛.

本次的分享就到这里啦,如果觉得对你有用的话,就请点赞关注哦!如果有其他的问题,可以在评论区讨论!我将相关的资料全部放在评论区的链接里。如有需要自取!

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MSP430F5529 入门心得 的相关文章

  • 红外反射传感器实验-传感器原理及应用实验

    目录 一 实验实训主要内容二 实验实训方法 过程步骤三 实验实训结果与分析四 讨论小结 一 实验实训主要内容 学习红外反射传感器的使用方式 xff0c 了解红外反射传感器的实验原理和实际应用 xff0c 学习并理解Modbus数据格式所代表
  • 酒精传感器实验-传感器原理及应用实验

    目录 一 实验实训主要内容二 实验实训方法 过程步骤三 实验实训结果与分析四 讨论小结 一 实验实训主要内容 学习酒精传感器MQ 3的使用方法 xff0c 了解酒精传感器的实验原理和实际应用 xff0c 了解酒精传感器的基本操作模式 xff
  • hdoj 1575 Tr A (矩阵快速幂)

    Tr A Time Limit 1000 1000 MS Java Others Memory Limit 32768 32768 K Java Others Total Submission s 4549 Accepted Submiss
  • MapReduce排序过程

    排序是MapReduce框架中最重要的操作之一 MapTask和ReduceTask均会对数据按照key 进行排序 该操作属于Hadoop 的默认行为 xff0c 任何应用程序中的数据均会被排序 xff0c 而不管逻辑上是否需要 默认排序是
  • 温湿度传感器实验-传感器原理及应用实验

    目录 一 实验实训主要内容二 实验实训方法 过程步骤三 实验实训结果与分析四 讨论小结 一 实验实训主要内容 学习温湿度传感器的使用方法 xff0c 了解温湿度传感器的基本实验原理和实际应用 xff0c 熟练掌握温湿度传感器的基本步骤 xf
  • 烟雾检测传感器实验-传感器原理及应用实验

    目录 一 实验实训主要内容二 实验实训方法 过程步骤三 实验实训结果与分析四 讨论小结 一 实验实训主要内容 学习烟雾检测传感器的原理及检测方式 xff0c 了解烟雾检测传感器的实验原理和技术指标 xff0c 熟练掌握烟雾检测传感器的工作步
  • 4:Servlet-Java Web

    目录 4 1 Servlet简介4 2 HTTP协议4 3 Servlet与JSP4 4 Servlet处理的基本流程4 5 Servlet 容器4 6 Servlet程序实现 4 1 Servlet简介 Servlet是用Java语言编写
  • 5:Servlet程序-Java Web

    目录 5 1 Servlet要求5 2 创建Servlet5 3 第一个Servlet5 4 Servlet编译5 5 Servlet配置 5 1 Servlet要求 如果要开发一个可以处理HTTP请求的Servlet程序 xff0c 首先
  • 6:部署Servlet-Java Web

    目录 6 1 部署Servlet6 2 请求Servlet6 3 找不到servlet包6 4 Servlet映射的细节 6 1 部署Servlet 部署就是把Servlet的字节码文件放在适当的地方 为了在浏览器上访问Servlet xf
  • 7:Servlet表单-Java Web

    目录 7 1 Servlet响应7 2 Servlet获取客户端参数7 3 Servlet接受表单数据 7 1 Servlet响应 通过response对象对用户进行响应 创建输出流对象 PrintWriter out 61 respons
  • 8:Servlet生命周期-Java Web

    目录 8 1 Servlet生命周期8 2 Servlet生命周期对应的方法8 3 Servlet的多线程机制 8 1 Servlet生命周期 Servlet程序是运行在服务器端的一段Java程序 xff0c 其生命周期将受到Web容器的控
  • 9:中文乱码处理-Java Web

    目录 9 1 常见字符集9 2 乱码原因9 3 解决乱码 9 1 常见字符集 ASCII 最原始的一套编码 xff0c 所有编码都是由一个字节的二进制数对应 xff0c 尽管包含8位 xff0c 但是第一位始终是0 xff0c 也就是128
  • 华为云平台零代码搭建物联网可视化大屏体验:疫情防控数据大屏

    目录 一 介绍二 准备三 搭建1 创建疫情防控大屏应用2 组件放置3 组件配置4 应用打包 一 介绍 零代码搭建物联网可视化大屏 xff1a 自定义物联网场景 xff0c 根据个人理解实现基于华为云IoT以及可视化大屏DLV搭建物联网大屏
  • 华为开源自研AI框架昇思MindSpore入门体验:手写数字识别

    目录 一 环境安装1 进入MindSpore官网2 选择安装版本3 确保为Windows系统4 安装MindSpore5 验证安装6 安装依赖 二 模型训练1 下载并处理数据集2 创建模型 本教程是在CPU Ubuntu上安装MindSpo
  • 转型“系统集成商+大数据运营和服务商”,航天信息看好你哟

    毫无疑问 xff0c 人工智能今天已经是一个 风口 抓住这一契机 xff0c 迎风起舞 xff0c 可能是所有厂商的想法 但是每一个新的趋势出现时 xff0c 一定是机遇与挑战并存 对于厂商来说 xff0c 是处变不惊 xff0c 还是急速
  • 华为开源自研AI框架昇思MindSpore应用实践:DCGAN生成漫画头像

    目录 一 原理说明1 GAN基础原理2 DCGAN原理 二 环境准备1 进入ModelArts官网2 使用CodeLab体验Notebook实例 三 数据准备与处理1 数据处理 四 创建网络1 生成器2 判别器3 损失和优化器4 优化器 五
  • 我的创作纪念日-从写作到阿里云专家博主的故事

    目录 在创作之路上追寻自我首先是我为什么会埋下创作的种子种子的萌发通过这些经历 xff0c 此时创作的种子正在长成一棵小树创作的小树茁壮成长大树终将结出丰硕的果实 在创作之路上追寻自我 在创作之路上追寻自我 xff0c 与大家分享我从写作到
  • 华为开源自研AI框架昇思MindSpore应用实践:RNN实现情感分类

    目录 一 环境准备1 进入ModelArts官网2 使用CodeLab体验Notebook实例 二 数据准备1 数据下载模块2 加载IMDB数据集2 加载预训练词向量 三 数据集预处理四 模型构建1 Embedding2 RNN 循环神经网
  • 华为开源自研AI框架昇思MindSpore数据处理:性能优化

    目录 一 环境准备1 进入ModelArts官网2 使用CodeLab体验Notebook实例 二 下载数据集三 数据加载性能优化四 shuffle性能优化五 数据增强性能优化六 操作系统性能优化七 自动数据加速八 数据异构加速 数据是整个
  • Spring-boot启动失败 Unregistering JMX-exposed beans on shutdown 异常处理

    目录 一 异常错误二 原因三 解决方法 一 异常错误 Spring boot启动Run时 xff0c 出现 o s j e a AnnotationMBeanExporter Unregistering JMX exposed beans

随机推荐