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

发布者:WhisperingWaves最新更新时间: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编程  全局变量 引用地址:MSP430G2553使用CCS8.0编程注意点总结

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

推荐阅读最新更新时间:2024-11-17 20:06

MSP430G2553蓝牙通讯代码
#include msp430g2553.h #include in430.h #define uchar unsigned char #define uint unsigned int void UartPutchar(unsigned char c); void delay_Nus(uint n); void delay_1ms(void); void delay_Nms(uint n); unsigned char UartGetchar(); unsigned char temp=0; unsigned char number ={0}; void main( void ) { // Stop watchdo
[单片机]
采用查询和中断方式利用单片机定时器T0产生定时脉冲编程
利用定时器T0产生定时脉冲。每隔2ms产生宽度为2个机器周期的正脉冲,由P1.0输出此定时序列脉冲信号(设时钟频率为6MHZ)。 答:首先求出定时器T0初值。由于时钟频率为6MHZ,所以,机器周期为2µs。 因为:t=(213-T0初值)´ 机器周期 所以,当t=2ms时,则:(213-T0初值)´ 2´10-6=2´10-3 解得:T0初值=7096=11011101 11000B,其中将高8位11011101 B=DDH赋给TH0,低5位11000B=18H赋给TL0。 方法一: 采用查询工作方式, 编程 如下: ORG 0000H AJMP MAIN
[单片机]
MSP430G2553电子时钟实验
用msp430g2553控制1602液晶显示时间,并可以通过按键设置时间,我做了正计时和倒计时两种模式 /********************************************************************* msp430g2553与1602引脚连接情况 * PIN1 -- 地 * PIN2 -- VCC(一定要接+5V) * PIN3 -- 仿真时悬空,实际电路 2K电阻-- 地 (电阻可以是500-2k的,改变电阻可以改变字符显示的亮度,电阻接不好会导致什么都不显示) * PIN4 -- RS -- P1.6 * PIN5 -- R/W -- GND * PIN6 -- EN -- P1
[单片机]
MSP430G2553(二)Timer定时器说明
MSP430设计了TIMER定时器,当定时器到达设置值(依据模式而定)时候就会跳转进入中断,作为常用功能,MSP430提供了三种计数模式,G2553中具有Timer0和Timer1两个16位定时器。 该文章中用一个定时执行的io口操作来演示如何设置计时器 1.配置timer 配置timer所用的寄存器有TACCR0 ,TACTL, TACCTL0 TACCR0:定时器的比较验证寄存器,16位,数值最大0xFFFF,0-65535 TACTL:定时器的控制寄存器,控制涵盖定时计数模式,分频,时钟源等 TACCTL0:定时器的比较验证控制寄存器,用于控制中断开关 寄存器的宏定义都在msp430g2553.h
[单片机]
MSP430G2553的时钟设置简析
基本时钟系统的寄存器 DCOCTL-DCO控制寄存器 DCOx DCO频率选择控制1 MODx DCO频率校正选择,通常令MODx=0 注意:在MSP430G2553上电复位后,默认RSEL=7,DCO=3,通过数据手册查得DCO频率大概在0.8~1.5MHz之间。 BCSCTL1-基本时钟控制寄存器1 XT2OFF 不用管,因为MSP430G2553内部没有XT2提供的HF时钟 XTS 不用管,默认复位后的0值即可 DIVAx 设置ACLK的分频数 00 /1 01 /2 10 /4 11 /8 RSELx DCO频率选择控制2 BCSCTL
[单片机]
msp430G2553串口通信_launchpad串口通信
MSP430G2553 单片机中集成了 USCI_A0功能模块,可以直接完成串口通信。 一、代码与仿真 TI官方例程中uart代码只有时钟,引脚,串口的初始化,不能直接串口收发,还需要增加发送函数和完善中断函数,我在官方例程的基础上,编写了串口通信程序,并硬件测试通过 。 硬件测试用板(TI的MSP-EXP430G2ET) 注意:图中绿圈跳帽的接法 在水平方向上, 跳线将 TXD 连接到 P1.1, 将RXD 连接到 P1.2 。 在垂直方向上, 跳线将 TXD 连接到 P1.2, 将RXD 连接到 P1.1。 用USCI_A0模块的串口时,RXD和TXD是固定的,板子的跳帽接法固定。 若是软件串口(TimerA定时器和软件结
[单片机]
<font color='red'>msp430G2553</font>串口通信_launchpad串口通信
20引脚的MSP430G2553引脚功能表
  德州仪器 (TI) MSP430 系列超低功耗微控制器包含多种器件,它们特有面向多种应用的不同外设集。 这种架构与 5 种低功耗模式相组合,专为在便携式测量应用中延长电池使用寿命而优化。 该器件具有一个强大的 16 位 RISC CPU,16 位寄存器和有助于获得最大编码效率的常数发生器。 数字控制振荡器 (DCO) 可在不到 1µs 的时间里完成从低功耗模式至运行模式的唤醒。   MSP430G2x13 和 MSP430G2x53 系列是超低功耗混合信号微控制器,具有内置的 16 位定时器、多达 24 个支持触摸感测的 I/O 引脚、一个多用途模拟比较器以及采用通用串行通信接口的内置通信能力。 此外,MSP430G2x5
[单片机]
20引脚的<font color='red'>MSP430G2553</font>引脚功能表
MSP430G2553时钟系统配置
在MSP430单片机中,一个时钟周期 = MCLK晶振的倒数。如果MCLK是8MHz,则一个时钟周期为1/8us。 一个机器周期 = 一个时钟周期,即430每个动作都能完成一个基本操作。 一个指令周期 = 1~6个机器周期,具体根据具体指令而定。 另外,指令长度只是一个存储单位,与时间没有必然的关系。 MSP430G2553单片机的时钟模块主要包括: 三个时钟:辅助时钟ACLK 、主时钟MCLK 、子系统时钟SMCLK 三个时钟源:内部低频时钟源LFXT1 、内部数字控制RC振荡器DCO、外部低频振荡器(需要焊上晶振) 对于时钟系统的配置,一共用到四个寄存器:DCOCTL-DCO控制寄存器、BCSCTL1-基
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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