历史上的今天
今天是:2024年10月30日(星期三)
2019年10月30日 | MSP430G2553使用CCS8.0编程注意点总结
2019-10-30 来源:eefocus
本文总结了在利用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用户手册、数据手册、学习笔记
《从零开启大学生电子设计之路》电子版及相关例程的下载地址:《从零开启大学生电子设计之路》电子版及相关例程
下一篇:MSP430勘误表使用
史海拾趣
|
目录: 第一章 绪论 第一节 无线电通信发展简史 第二节 无线电信号传输原理 第三节 通信的传输媒质 第二章 选频网络 第一节 串联谐振回路 第一节 并联谐振回路 第三节 串、并联阻抗等效互换与回路抽头时 ...… 查看全部问答> |
|
大家好,刚刚学习nucleus plus 操作系统,不知道从何开始,请大家指点或给点nucleus plus操作系统资料,谢谢!我的邮箱 wlh1211@126.com QQ:276765591… 查看全部问答> |
|
前言 LED(发光二极管)是目前发展最为迅猛的产业之一,其高亮度、低能耗、长寿命的特点在各领域广泛应用,也被认为最有前途的产业之一。但是LED的光电学特性差异经常导致多个LED组合(LED屏)出现亮度和颜色不一致,破坏白平衡,降低显示质 ...… 查看全部问答> |
|
10、Beaglebone外围电路设计第三周:实现LCD显示 刚开始在查阅资料的时候,感觉AM335x系列的LCD raster显示模式应该比较简单,因为在手册介绍中,这种模式通用性很强,对LCD 的想好没有做特别的要求,所以我购买了一款3.5寸的LCD,可悲剧的是我无论怎么配置,都不能让LCD显示预计的效果!无奈只好 ...… 查看全部问答> |
|
问题有点白痴。。。不好意思去问老师,特地在此求助。 实例程序编译通过了,但调试会提示USB FET找不到。。不知哪里出了问题。。usb选的是左下角的,可是连上电脑后电脑都没反应,只有供电的作用。。。求帮忙啊,,,… 查看全部问答> |
|
又来送书啦!一本《精通开关电源设计(中文版)》续2 这本虽不是最最流行的开关电源设计的书,但做为普及了解开关电源的原理和基础知识,绝对是一本值得看的书,,大家收藏吧,, … 查看全部问答> |
|
要多功能数字钟的完整程序啊,急啊,最好是汇编语言的,C语言的也可以。时钟芯片用的ds1302 可以用键盘设定时间,要有12小时和24小时两种计时方式,其他附加的功能随便是什么。没有附加功能就算了。 希望各位帮个忙啊,多谢啊… 查看全部问答> |
|
请问ZStack-CC2530-2.5.1a版本协议栈里的neighborTable和AssociatedDevList分别是存什么信息的 我原来用的是ZStack-CC2530-2.3.0-1.4.0,组网时周围设备的信息都会在这个表中找到,neighborTable存Router,AssociatedDevList存EndDevice 为什么新 ...… 查看全部问答> |




