学习笔记-CCS-MSP430F5529[快速入门篇一]

发布者:熙风细雨最新更新时间:2022-09-20 来源: csdn关键字:CCS  MSP430F5529  快速入门 手机看文章 扫描二维码
随时随地手机看文章

一·开发环境的选择

        关于MSP430的开发环境,有很多种选择,常见的有Energia,CCS,IAR for MSP430,MDK等,本人仅使用过Energia和CCS,这两个开发环境都是TI公司官方给我们用来开发TI板子的开发环境,其中Energia是一个开源的社区驱动型开发环境,界面与Arduino有97%的类似度,如果你之前有过Arduino的开发经验,那么大概率可以无缝衔接到Energia,Arduino的开源库大多都可以移植到Energia,源代码都托管到了github上面,点击Energia 可查看。而CCS是Eclipse软件框架结合嵌入式开发调试功能的产品,对于常用VS,Eclipse以及MDK等环境的朋友们可能会比较友好。


        接下来分享一下我搭建CCS的经验


        CCS全名为Code Composer Studio™,这个名字听上去是不是就很专业哈哈,我使用的版本为CCS8.3,选择这个版本没有什么特殊原因,大家在官网选择自己想要的版本进行下载就可以了,尽量不要太低,点击CCS 进行下载,关于CCS的安装,在安装选项里勾选MSP430后不断点下一步就可以了,由于我下载的8.3版本是32bit软件,而我的电脑是64bit的,安装过程报了c++ compiler相关的错误,下载DirextX对自己电脑的C++Compiler进行修复就可以了。如果有相同问题的小伙伴,可尝试此法。


        CCS的主界面是这样的,左上角的锤子是编译,锤子左边的{}是烧录,{}的左边是DEBUG仿真调试模式。安装CCS的过程中就已经自动安装好了相关的串口驱动,使用mircoUSB数据线连接5529和电脑后,点击烧录便可以将程序烧录进5529的flash中,烧录时5529的eZ-FET-lite区域(就是插线那一边)红灯会闪烁,在Project里就可以新建一个CCS工程,按照自己的需要选择工程属性就可以,如果不小心选错了芯片,可在Project Explorer里右击工程文件夹后选择Properties从而更改自己的工程属性选项。

二·例程-DrvierLib和寄存器操作的选择

         和32类似,5529的开发也可大体分为寄存器开发和库函数开发,其中库函数可以在这里下载DriverLib后导入自己的工程中使用,库函数文件内有很多example工程,其中MSP430F5xx_6xx中存在着5529能够用的例程。我个人感觉使用库函数不如使用寄存器开发来的容易,一来是因为DriverLib的写法并不是很戳我的编程习惯,并且例程中的库函数操作并不只是针对5529的,二来是5529的寄存器并不像32那样多而复杂,也可能是因为我用不到那么多的寄存器。网上有关5529寄存器开发的例程有很多,这大大降低了寄存器操作的上手难度。


三·I/O和常用时钟

          先给大家介绍一下5529的外设和存储资源,5529具有128KB的Flash,8KB的RAM,两类串行通讯接口,其中USCI_Ax具有UART,IrDA,同步SPI功能,USCI_Bx具有IIC,同步SPI功能,四个多通道定时器TA0,TA1,TA2,TB0,12位ADC等。此外,5529的时钟系统也很有必要了解,与32的SYSCLK,APB1,APB2类似,5529也有系统主时钟MLCK,高速外设时钟SMCLK,低速外设时钟ACLK,其中主时钟频率会因为不同模式而改变,一般来讲(分频后)高速外设时钟SMCLK的频率为1.05MHz,低速外设时钟ACLK的频率为32768Hz(2^15Hz),供不同外设使用。

引脚初始化可通过改变以下几个寄存器来实现,


        1.I/O方向设定寄存器 PxDIR,I/O相应位置1表示该引脚为输出模式,置0表示该引脚为输入模式,与32的GPIO_Mode_有着部分类似效果;


        2.输入设定寄存器PxIN,控制输入引脚的高低电平;


        3.I/O输出寄存器PxOUT,控制输出引脚的高低电平;


        4.上/下拉电阻使能寄存器PxREN,控制输出输入引脚的上拉/下拉/推挽模式;PxSEL功能选择寄存器,声明该端口要用做外围电路特殊功能,与端口复用有关。


        5.输出驱动能力设置寄存器PxDS,默认低电平,置高后可设置为全力驱动,因为MSP430系列主打低功耗,引脚的驱动能力在默认情况下是不能驱动一些功率较大的负载的。


下图是5529引脚及其复用功能图。

这里举一个引脚初始化的例子,初始化P1.0/P1.2/P1.3引脚分别复用为,TA0_CLK,TA0.1,TA0.2功能,这是一个定时器初始化函数,前五行代码属于引脚初始化,作用是先将P1.0的模式设置为输出,后将P1.0的功能复用为定时器TA0的输入时钟(P1.0引脚在CPU上,未引出到PCB),将P1.2和P1.3初始化为输出模式,复用为定时器TA0的TA0.1和TA0.2。


 1         WDTCTL = WDTPW + WDTHOLD;       // 关闭看门狗

 2         P1DIR |= BIT0;            //P1.0为输出模式

 3         P1SEL |= BIT0;            //P1.0复用其他外设功能

 4         P1DIR |=BIT2+BIT3;                //  P1.2+P1,3为输出

 5         P1SEL |=BIT2+BIT3;                // 设置 P1.2为TA0.1输出

 6         TA0CTL= TASSEL_2 +MC_1;           // 设置TIMERA的时钟源为SMCLK, 计数模式为up,到CCR0再自动从0开始计数

 7         TA0CCR0 = motor_pwm_period;       // 设置PWM 周期

 8         TA0CCTL1 = OUTMOD_7;              // 设置PWM 输出模式为:7 - PWM复位/置位模式

 9         TA0CCTL2 = OUTMOD_7;

10         TA0CCR1=0;               //占空比调节

11         TA0CCR2=0

四·外部中断

        外部中断是5529中断优先级最低的中断,其中P1和P2都可做外部中断的中断源,而P1.0的中断优先级在外部中断里是最优的,外部中断可通过以下几个寄存器进行设置:


1.PxIE 中断使能寄存  相应位置1表示允许中断;


2.PxIES中断触发方式寄存器,置1表示下降沿触发,置0表示上升沿触发;


3.PxIFGx中断标志寄存器,允许中断并使能后,中断来临后等待相应时,该位会变为高电平;


下面是P2.1做为外部中断的初始化函数,P2.1引脚默认为板载按键,需要说明的是,使能中断需要开启全局中断,开启方式见下方例程


 1 /*中断初始化函数*/

 2 void(exti_init)

 3 {

 4            P2IE |= BIT1;                   //P2.1中断使能

 5            P2IES |= BIT1;                  //设置为下降沿触发

 6            P2IFG &= ~BIT1;                 //清中断标志位

 7            P2REN |=  BIT1;                 //上拉电阻

 8            P2OUT |=  BIT1;                 //初始化置高

 9             __enable_interrupt();          //使能中断,也可写做_BIS_SR(GIE);

10 }

11 /*中断服务函数*/

12 #pragma vector=PORT2_VECTOR

13 __interrupt void P2_ISR(void)

14 {

15     if(P2IFG & BIT1)                        //判断是否有中断挂起

16         {

17            /*在这里写你的中断服务函数*/

18         }

19     P2IFG &=~BIT1;                          //清空中断标志

20 

21 }


关键字:CCS  MSP430F5529  快速入门 引用地址:学习笔记-CCS-MSP430F5529[快速入门篇一]

上一篇:MSP430F5529基于CCS库函数开发——软件安装与库函数配置
下一篇:学习笔记-CCS-MSP430F5529[快速入门篇二]

推荐阅读最新更新时间:2024-11-13 01:02

MSP430F5529学习笔记(二)
学习MSP430单片机一定要努力克服心里因素,试着去阅读TI官方的英文文档。这款单片机并没有同32一样的丰富中文资料和中文社区支持,养成自我学习和探索答案的习惯很重要。 相关寄存器配置 通用I/O简介 *一般情况下,P1和 P2都是具有中断能力的。*从 P1和 P2接口的各个I/O 管脚引入的中断可以独立的被使能并且设置为上升沿或者下降沿触发。对应的中断向量表分别为 P1IV 和 P2IV,它们只能进行字操作,并且 PAIV 这个寄存器根本不存在。 P1、P2可合为 PA,P3、P4可合为 PB,…PC、PD。所以 P1为8位BCD 0x00,PA 为16位 BCD 0x0000。当进行字操作写入 PA 口时,所有的16位
[单片机]
<font color='red'>MSP430F5529</font>学习笔记(二)
MSP430F5529火箭板 ---> 控制时钟系统输出频率实验
实验内容:上电控制MSP430F5529 Launch Pad上的主时钟系统达到25Mhz 实验准备: 1、硬件:MSP430F5529 Launch Pad 2、软件:Code Composer Studio集成开发工具(CCS) 3、提升MSP430F5529核心电压的办法及介绍请参考《MSP430F5529火箭板 ----> 关于核心电压提升实验(含电源管理模块和供电监控系统介绍)》文章链接 link 一、时钟系统 1、MSP430F5529 Lanuch Pad晶振的物理层分析   在进入时钟系统之前我们先对MSP430F5529的时钟晶振做一个介绍。    MSP430F5529 Launch Pad 板载了1
[单片机]
<font color='red'>MSP430F5529</font>火箭板 ---> 控制时钟系统输出频率实验
MSP430F5529 DriverLib 库函数学习笔记(一)时钟配置和闪烁LED
平台:Code Composer Studio 10.3.1 MSP430F5529 LaunchPad™ Development Kit (MSP‑EXP430F5529LP) 一、新建工程 二、时钟树 时钟系统结构 (1)5个时钟来源 时钟系统模块具有5个时钟来源。 ① XT1CLK:低频/高频振荡器,可以使用32768Hz的手表晶振、标准晶体、谐振器或4~32MHz的外部时钟源; ② VLOCLK:内部超低功耗低频振荡器,典型频率12kHz; ③ REFOCLK:内部调整低频参考振荡器,典型值为32768Hz; ④ DCOCLK:内部数字时钟振荡器,可由FLL稳定后得到; ⑤ XT2CLK:高频振荡器,
[单片机]
<font color='red'>MSP430F5529</font> DriverLib 库函数学习笔记(一)时钟配置和闪烁LED
【51单片机快速入门指南】4.4.1:python串口接收磁力计数据并进行最小二乘法椭球拟合
STC15F2K60S2 16.384MHz Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 Python 3.8.11 (default, Aug 6 2021, 09:57:55) :: Anaconda, Inc. on win32 参考资料: 笔记:python读取串口数据并保到本地txt文件 —— 大头工程师笔记 最小二乘法拟合—基本原理 —— 铁头娃-wefly 硬知识 Python代码 if not 1: # 0为串口收集数据,1为椭球拟合 import serial ser = serial.Seria
[单片机]
【51单片机<font color='red'>快速入门</font>指南】4.4.1:python串口接收磁力计数据并进行最小二乘法椭球拟合
MSP430F5529学习笔记(一)
MSP430F5529作为一款TI公司推出的16位嵌入式控制芯片,相比于传统的51单片机,有着更加丰富外设资源。但是他不具有32等ARM-M架构嵌入式芯片的强大计算能力。 MSP430系列的单片机主张的是超低功耗,例如在使用电池长期供电的设备中,430的超低功耗可以有效延长产品的使用时间。 在学习430之前建议先学习8051系列的单片机,对51有一个充分的认识之后在进一步学习430。这两款处理器都有相似的地方,从最简单的编程开始,他们都是直接操作寄存器,完成各种外设的配置。 一、430与51做一个简单的对比 指令集不同 51内核单片机是8 位单片机。其指令是采用的被称为“ CISC ”的复杂指令集,共具有111 条指令
[单片机]
<font color='red'>MSP430F5529</font>学习笔记(一)
STM32F0单片机快速入门八 聊聊 Coolie DMA
苦力 DMA 世上本没有路,走的人多了,便成了路。世上本没有 DMA,需要搬运的数据多了,便有了 DMA。 大多数同学应该没有在项目中用过这个东西,因为一般情况下也真不需要这个东西。在早期的单片机中也不存在DMA模块。再加上很多谈 DMA 的文章,一上来就先来一个总线架构图,然后来一大堆让人生畏的词儿:共享总线,仲裁器,指针增量,对齐,中断 ... 好吧,每一个词都能吓跑一批胆小的。 真的需要这么复杂吗?就好比我们学开车一样,能不能先别去尝试弄懂发动机的原理,直接挂档踩油门走起来呢? DMA是很简单的一个模块,首先他的功能单一,就是把数据从一个地方搬运到另一个地方,再一个它的用法也很简单,我们还是先从一个例子说起: 我们用 K
[单片机]
【51单片机快速入门指南】4.3.4: MPU6050使用Madgwick AHRS算法实现六轴姿态融合获取四元数、
STC89C516 32MHz Keil uVision V5.29.0.0 PK51 Prof.Developers Kit Version:9.60.0.0 上位机:Vofa+ 1.3.10 移植自AHRS —— LOXO,算法作者:SOH Madgwick 源码 为了避免所用RAM超标,部分变量设为idata类型,移植时需注意。 所用MCU为STC89C516 晶振16MHz 6T模式 stdint.h见【51单片机快速入门指南】1:基础知识和工程创建 软件I2C程序见【51单片机快速入门指南】4: 软件 I2C 串口部分见【51单片机快速入门指南】3.3:USART 串口通
[单片机]
【51单片机<font color='red'>快速入门</font>指南】4.3.4: MPU6050使用Madgwick AHRS算法实现六轴姿态融合获取四元数、
msp430f5529 MCP4725程序
//************************************** //I2C起始信号 //************************************** void I2C_Start() { SDAOUT; //数据线设为输出方向 SDA1; //拉高数据线 SCL_OUT; //时钟线设为输出方向 SCL1; //拉高时钟线 delayus(5); //延时 SDA0; //产生下降沿 delayus(5); //延时 SCL0; /
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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