基于CCS8环境下的自制库,快速上手MSP430F5529开发板教程
快速上手MSP430F5529开发板教程(基于CCS8环境下的自制库)
一、前言
MSP430单片机的学习难度介于51与STM32之间,推荐使用寄存器开发,因为MSP430的寄存器操作真的比库函数操作要简易许多。在学习MSP430的时候,建议直接看中文手册(重点)和原理图学习。 |
二、准备工作
关于下载及安装CCS大家可以参考这篇文章:CCSv9.3安装与搭建msp430F5529LP库函数环境
关于中文手册与原理图我已上传至网盘:https://pan.baidu.com/s/1IGjVHhveqcF5FDBrkbMl4g
密码:fbss
自制库是根据Black Helo这位博主的库修改而来,大家可以看他的这篇文章:备战TI系列 — 五分钟内玩转MSP430F5529开发板几大重要功能及常用模块(基于CCS8环境下自制函数库)
三、快速了解CCS8的使用
1、目录
2、Debug界面
3、添加文件(设置文件路径)
与keil5一样,在工程中添加的.c文件,需要添加头文件路径。
步骤如下图所示:



点击Apply and Close结束
四、基本操作
1、开发板图样
2、打开工程

3、程序烧入



没有错误,没有警告。
用USB线连接电脑与开发板,烧入程序。
五、基本使用
1、LED闪烁


#include "All.h"
void main(void)
{
Init();
LED0_STATE(0);//操作led0 灭
LED1_STATE(0);//操作led1 灭
while(1)
{
LED0_STATE(2);//操作led0 状态翻转
LED1_STATE(2);//操作led1 状态翻转
delay(500); //延时
}
}

2、串口操作
开发板上的USB接口是串口1,串口0在开发板的引脚上。

#if USART1_switch
#pragma vector = USCI_A1_VECTOR
__interrupt void USCI_A1_ISR()
{
switch(_even_in_range(UCA1IV,4))
{
case 0:break; // Vector 0 - No interrupt
case 2: // Vector 2 - RXIFG
UCA1TXBUF = UCA1RXBUF; // 发送接收到的数据
break;
case 4:break; // Vector 4 - TXIFG
default: break;
}
}
#endif
在USART.c文件里,打开串口时默认打开。
#include "All.h"
void main(void)
{
Init();
while(1)
{
send1_buf("发送成功\r\n");
delay(500); //延时
}
}

#include "All.h"
void main(void)
{
Init();
_EINT();
while(1)
{
delay(500); //延时
}
}

3、按键中断


#include "All.h"
void main(void)
{
Init();
LED0_STATE(0);
LED0_STATE(0);
IN_Config(1,1); //打开按键1的中断
IN_Config(2,1); //打开按键2的中断
while(1)
{
}
}
//中断函数
#pragma vector = PORT1_VECTOR
__interrupt void P1_ISR()
{
if(P1IFG & BIT1)
{
while((P1IN & BIT1)==0);
LED0_STATE(1);
}
P1IFG &=~ BIT1;
}
#pragma vector = PORT2_VECTOR
__interrupt void P2_ISR()
{
if(P2IFG & BIT1)
{
while((P2IN & BIT1)==0);
LED0_STATE(0);
}
P2IFG &=~ BIT1;
}

4、定时器中断

#if TIME_A1
/*定时器1的中断函数回调*/
#pragma vector=TIMER1_A0_VECTOR
__interrupt void TIMER1_A0_ISR(void)
{
LED0_STATE(2);
LED1_STATE(2);
send1_buf("定时器打开\r\n");
}
#endif
void main(void)
{
Init();
while(1)
{
}
}


5、PWM输出

#include "All.h"
void main(void)
{
Init();
PWM0_State(50);
while(1)
{
}
}

6、IIC驱动OLED 0.96

#include "All.h"
void main(void)
{
Init();
OLED_Clear();//OLED清屏
while(1)
{
OLED_ShowString(60,1,"Hello",8); //按照x,y坐标来显示字符串,最后一位是字体大小
}
}

到这里就结束啦
