发新帖我要提问
123
返回列表
打印
[MCU]

MSP430

[复制链接]
楼主: gaoke231
手机看帖
扫描二维码
随时随地手机跟帖
41
gaoke231|  楼主 | 2019-11-30 23:22 | 只看该作者 |只看大图 回帖奖励 |倒序浏览
stdio.h 输入与输出类函数
getchar int getchar(void) 获得字符
gets char *gets(char *s) 读字符串
printf int printf(const char *format, ...) 写格式化数据
putchar int putchar(int value) 写字符函数
puts int puts(const char *s) 写字符串函数
scanf int scanf(const char *format, ...)读格式化数据
sprintf int sprintf(char *s, const char *format,) 将格式化数据写入字符串
sscanf int sscanf(const char *s,const char *format,...)从字符串中读取格式化数据

使用特权

评论回复
42
gaoke231|  楼主 | 2019-11-30 23:23 | 只看该作者
stdlib.h 通用子程序类
abort void abort(void) 非正常结束程序
abs int abs(int j) 绝对值函数
atof double atof(const char *nptr) 转换 ASCII 为双精度
atoi int atoi(const char *nptr) 转换 ASCII 为整数
atol long atol(const char *nptr) 转换 ASCII 为长整形
bsearch void *bsearch(const void 在数组中搜索
*key, const void *base,
size_t nmemb, size_t size,
int (*compare) (const void
*_key, const void *_base));
calloc void *calloc(size_t nelem, size_t elsize) 为目标数组分配存储器单元
div div_t div(int numer, int denom) 除法运算函数
exit void exit(int status) 结束程序
free void free(void *ptr) 释放存储器单元
labs long int labs(long int j) 整形数取绝对值
ldiv ldiv_t ldiv(long int numer, long int denom) 长整形除法
malloc void *malloc(size_t size) 分配存储器
qsort void qsort(const void *base, 数组排序

使用特权

评论回复
43
gaoke231|  楼主 | 2019-11-30 23:23 | 只看该作者
string.h 字符串处理类
memchr void *memchr(const void *s, 在存储器中搜索字符诶
int c, size_t n)
memcmp int memcmp(const void *s1, 比较存储器内容
const void *s2, size_t n)
memcpy void *memcpy(void *s1, 拷贝存储器内容
const void *s2, size_t n)
memmove void *memmove(void *s1, 移动存储器内容
const void *s2, size_t n)
memset void *memset(void *s, 置存储器
int c, size_t n)
strcat char *strcat(char *s1, 逻辑字符串
const char *s2)
strchr char *strchr(const char *s, int c)在字符串中找某一个字符
strcmp int strcmp(const char *s1, 比较两个字符串
const char *s2)
strcoll int strcoll(const char *s1, 比较字符串
const char *s2)
strcpy char *strcpy(char *s1, const 拷贝字符串
char *s2)
strcspn size_t strcspn(const char 在字符串中跨过被排除的字符
*s1, const char *s2)
strerror char *strerror(int errnum) 给出一个错误信息字符串
strlen size_t strlen(const char *s) 计算字符串长度函数

使用特权

评论回复
44
gaoke231|  楼主 | 2019-11-30 23:23 | 只看该作者
C 语言编程实例
下面的程序将在 P1.0 输出方波。程序中使用了两个函数:一个是主函数,另一个是中断
函数。主函数主要是对看门狗定时器与端口进行设置,在主函数中有一个循环(for 语句),
这是整个程序的主循环。
中断服务程序怎么知道就是看门狗定时器的中断服务程序呢,这个由它的中断向量标志
[WDT_VECTOR]决定了进入中断之后 CPU 到地址 0FFE0H+WDT_VECTOR 中去找 PC 的内容。

使用特权

评论回复
45
gaoke231|  楼主 | 2019-11-30 23:24 | 只看该作者
#include <msp430x11x1.h>
void main(void)
{
WDTCTL = WDT_ADLY_250; // 设置看门狗定时时间 250ms
IE1 |= WDTIE; // 使能 WDT 中断
P1DIR |= 0x01; // 设置 P1.0 为输出方向
_EINT(); // 使能总的中断
for (;;) // 主循环
{
_BIS_SR(LPM3_bits); // CPU and DCO 都不需要了
_NOP();
}
}
interrupt[WDT_VECTOR] void watchdog_timer(void)
{
P1OUT ^= 0x01; // P1.0 求反以输出方波
}

使用特权

评论回复
46
gaoke231|  楼主 | 2019-11-30 23:27 | 只看该作者
开发环境
MSP430 的 IAR 最新版本软件按照默认安装之后,由程序组的 IAR Systems――IAR
Embedded Workbench KickStart for MSP430 V3 ――IAR Embedded Workbench 可以进入 IAR
的 MSP430 开发环境

使用特权

评论回复
47
gaoke231|  楼主 | 2019-11-30 23:32 | 只看该作者
第一次进入开发环境之后的界面如图 2.2.2。这时,需要添加一个工作区,以及在工作区
中添加一个项目,然后在项目中添加自己的程序代码。最后编译,调试。下面将分别讲述如
何操作

使用特权

评论回复
48
gaoke231|  楼主 | 2019-11-30 23:33 | 只看该作者
添加一个新的工作区的方法为:点击菜单: File――New――Workspace,

使用特权

评论回复
49
gaoke231|  楼主 | 2019-11-30 23:34 | 只看该作者
这时工作区内没有任何内容,需要添加一个用户项
目。具体方法见图 2.2.5。图示为添加新的项目,也可以打开以前的项目(使用菜单中下面条
目)。按添加新项目之后,出现图 2.2.6 所示的界面,按 ok 即可。之后需要填写项目名称,以
及存放的位置,见图 2.2.7,注意记住自己输入的项目名称以及位置。生成新项目之后,在工
作区中显示出来,见图 2.2.8。如果此时关闭 IAR 开发环境,会提示是否保存工作区文件以及
项目文件,同时要求输入工作区名以及路径。如果再次打开 IAR 开发环境,会提示是否打开
以前编辑过(或已经存在)的工作区文件,如图 2.2.9 所示。这时点击 test 文件名,再点击“open”,
即可进入图 2.2.8 所示的刚才正在编辑的项目工程文件“test 项目”。


使用特权

评论回复
50
gaoke231|  楼主 | 2019-11-30 23:34 | 只看该作者
生成新项目之后,在工作区中显示出来

使用特权

评论回复
51
gaoke231|  楼主 | 2019-11-30 23:35 | 只看该作者
进入开发环境时 提示是否打开已经存在的工作区文件

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则