MSP430G2553使用CCS8.0编程注意点总结

2019-10-30来源: eefocus关键字:MSP430G2553  CCS8  0编程  全局变量

本文总结了在利用MSP430G2553做实验时的一些通用错误及注意点,用的软件为CCS8.0,供大家借鉴,具体工程不再给出,若有相似问题或本文有错误,可留言,我尽量回复。文末附有MSP430的用户手册、数据手册、学习笔记及《从零开启大学生电子设计之路》电子版及相关例程的下载地址,我也会尽量持续总结并更新。


【错误1】:在“UART_Global.h“中已经定义全局变量“extern unsigned int CHANGE_MODE;”,然而编译时仍然出现错误,错误提示为:error #10234-D: unresolved symbols remain。


【解决】:经过在网上查找并对比相关例程发现,在“.h”文件中定义后,仍需在相应的”.c“文件中再次声明,如在本错误中需在” UART_Global.c“中定义“unsigned intCHANGE_MODE=0;”,定义之后,编译成功。


【错误2】:在调试或运行结束后发现程序总是停止在ISR_TRAP.ASM文件中。


【解决】:此类问题出现的原因一般是声明了一个中断并使能,但是并未写该函数的中断处理函数,写上就可以解决该问题。


【错误3】:同时使用“I2C.c”和”UART_Init.c”编译时显示:error #10056: symbol "__TI_int06" redefined: first definedin "./src/I2C.obj"; redefined in "./src/UART_init.obj",查找好久但却找不到错误提示的"__TI_int06"。


【解决】:根据错误提示,“__TI_int06”被重定义,然而自己在编写程序时根本没有定义过该变量。在网上一个不起眼的角落里找到有帖子说“__TI_int04”指的是一个中断向量。结合“__TI_int06”的“TI”可以推测这可能是CCS中自带的头文件中的相关定义,最终查找后发现,这的确代表了一个中断向量!而且该中断向量在不同的文件中定义使用了两次!只需要将其中一个文件中断中的函数放在另一个文件的该中断处理函数中即可。然而在修改时需要注意将相关的变量一并移入另一个文件中,否则会报错。在本工程中,是将”UART_Init.c”中“#pragma vector =USCIAB0TX_VECTOR”相关的内容移入了“I2C.c”的“#pragma vector = USCIAB0TX_VECTOR”中,并用中断标志位判断中断的来源究竟I2C还是UART,并做出相应处理。具体程序可见本工程中的“I2C.c”。


在这里说明一下在CCS程序中搜索的步骤:首先,将待搜索的内容粘贴到程序中,选中该内容,单击右键,选“searchtext”,再选“project”即可进行搜索。


1.在程序的功能无法正常实现而需要调试时,最好将该程序分解为多个实现小功能的模块,使用断点调试或单步调试,在每次调试后观察寄存器和全局变量的值,逐个判断小模块的功能是否正常,最后调试总程序。


2.在涉及到时序配合时,分频系数的选择会在一定程度上影响各个信号的时序关系,应该根据示波器显示的信号时序选择合适的分频系数以保证功能正常。


3.在涉及到多个模块的功能时,一定要特别注意引脚、寄存器、中断向量是否存在同时使用的情况,如果存在,一定要利用软件编程将其分开,这样才能保证正常的功能。


4.在编写程序,尤其是在编写一个较大的工程时,一定要注意存储空间的分配与代码的简洁度问题,不然可能出现存储空间不足的问题。


5.在硬件连接上,我们尤其需要注意各个跳线槽的连接方式是否需要更改,比如在本工程中就需要去掉P1.6的跳线槽,并更改RXD、TXD跳线槽的连接方式,才能实现正常的功能。


6. 再向已有工程添加库函数时,需要点一下src,再点菜单栏的project 选择最下面那个properties;在弹出的界面里选include options 然后找到一个小加号;点击小加号 在弹出的界面点击workplace 然后找到刚才的src 最后一直点ok;这样才能使复制过去的库函数文件有效。


7.当功能不能正常实现时,可以重复下载几次,因为该开发板在跑程序时很容易出现问题;当功能突然不能正常实现时,很有可能重新下载一次程序就好了。


8.CCS中的编译方式和普遍应用的C语言编译方式有很大不同,这就造成了部分我们认为正确的语句在CCS的编译下会报错,这时我们首先去网上搜索一下相关信息,如果没有相关提示,就只好不断地尝试,直到编译通过并可以实现正常功能为止。


MSP430的用户手册、数据手册、学习笔记下载地址:MSP430用户手册、数据手册、学习笔记


《从零开启大学生电子设计之路》电子版及相关例程的下载地址:《从零开启大学生电子设计之路》电子版及相关例程

关键字:MSP430G2553  CCS8  0编程  全局变量 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic478715.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:MSP430 AD 单通道单次转换
下一篇:MSP430勘误表使用

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

MSP430G2553与MSP430F5336系列单片机总结[4]——比较器B的使用
比较器B是什么,顾名思义,它其实就是用来比较模拟电压+输入端和-输入端的电压大小,然后设置输出信号CBOUT的值的,如果 + 端电压高于 - 端电压,则CBOUT置高,否则置低。主要的控制寄存器有CBCTL0,CBCTL1,CBCTL2,CBCTL3,CBINT,CBIV,在MSP430G2553中没有比较器B,但是F5336中有,所以接下来的代码全都是F5336的比较器B使用程序:1.比较器B输入通道CB0接外部模拟输入信号,并且引至比较器+输入端,内部参考电压发生器利用共享电压源产生2.0V参考电压。最后当CB0输入模拟信号电压高于2.0V时,CBOUT输出高电平,当CB0输入模拟信号电压低于2.0V时,输出低电平
发表于 2019-11-06
使用MSP430G2 LaunchPad开发板连接步进电机的方法
在本篇文章中,我们将介绍如何使用MSP430 LaunchPad开发板连接一个步进电机。 MSP-EXP430G2是德州仪器(TI)提供的开发工具,又名LaunchPad,用于学习和练习如何使用他们提供的微控制器。该开发板属于MSP430产品线,我们可以使用它对所有MSP430系列微控制器进行编程。如果您是MSP430的新手,请查看MSP430 LaunchPad的入门教程。所需的材料●    MSP430 LaunchPad开发板●    35BYJ46或28-BYJ48步进电机●    ULN2003驱动芯片●    连接导线● 
发表于 2019-10-23
使用MSP430G2 LaunchPad开发板连接步进电机的方法
使用MSP430G2 LaunchPad开发板驱动伺服电机的方法
在本篇文章中,我们将主要介绍一些有关伺服电机的基础知识以及如何将伺服电机与MSP430G2 LaunchPad开发板进行连接。 MSP-EXP430G2是德州仪器提供的开发工具,也称为LaunchPad,用于学习和实践如何使用其微控制器。该开发板属于MSP430产品线类别,我们可以对所有MSP430系列微控制器进行编程。伺服电机和PWM在详细讨论之前,首先我们应该了解伺服电机。伺服电机包含了直流电机、位置控制系统和转动机构。伺服电机在现代世界有很多应用,因此它们有不同的形状和尺寸。我们将在本篇文章中使用的是SG90伺服电机,它是最流行且最便宜的电机之一。 SG90是一款180度伺服器。所以用这个伺服我们可以将轴从0-180度定位
发表于 2019-10-23
使用MSP430G2 LaunchPad开发板驱动伺服电机的方法
使用MSP430G2单片机的PWM模块控制LED指示灯的亮度
本篇文章是MSP430G2 LaunchPad系列教程的一部分,我们正在学习使用德州仪器的MSP430G2 LaunchPad开发板。到目前为止,我们已经学习了开发板的基础知识,并介绍了如何读取模拟电压以及使用MSP430G2进行连接LCD等。现在我们继续了解MSP430G2单片机中的PWM模块。我们将通过改变电位器来控制LED的亮度,因此,将电位器连接到MSP430的模拟引脚,然后读取其模拟电压,因此建议在继续学习之前先了解ADC的文章。什么是PWM信号?脉宽调制(PWM)是控制电路中最常用的数字信号。该信号以预定的时间和速度设置为高电平(3.3v)和低电平(0v)。信号保持高电平的时间称为“开启时间”,信号保持低电平的时间称为
发表于 2019-10-22
使用MSP430G2单片机的PWM模块控制LED指示灯的亮度
使用MSP430G2 LaunchPad开发板连接LCD液晶显示屏的方法
任何+ 5V稳压电源,然后向LCD供电,在这种情况下,请确保将电源地连接到MSP开发板的地。一旦完成连接+ 5V引脚,其他引脚的连接就非常简单。现在我们的硬件已经准备就绪,让我们继续介绍软件部分。使用Energia开发环境编程用于LCD的MSP430本页末尾给出了将MSP430G2553与LCD显示器连接的完整程序。代码可以进行编译、上传和使用。在下面的段落中,我将解释程序是如何工作的。在我们继续解释之前,我们必须记下我们正在使用的引脚。如果你看一下上面的电路图和下面的MSP430引脚图,您可以得出结论,我们已经按照下表连接了LCD。LCD引脚名称连接到VSS地VDD+ 5V USB引脚RsMSP开发板的第2脚R / W
发表于 2019-10-22
使用MSP430G2 LaunchPad开发板连接LCD液晶显示屏的方法
MSP430F5529 生成PWM波 with CCS
大概就是通过时钟来产生某个确定频率的PWM波用FPGA可以得到更完美的波形,不过如果只是提供一个CLK波的话F5529LP就完全可以做到#include <msp430.h> unsigned int temp; int main(void) {  WDTCTL = WDTPW | WDTHOLD;   //关闭看门狗  //Initialize    P1DIR |= BIT0;     P1OUT |= BIT0; P1SEL |= BIT2; //从P1.2输出 P1DIR |= BIT
发表于 2019-10-17
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved