完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 michael_llh 于 2020-2-24 11:13 编辑 MSP430教程之五 哈哈!经过前面的四讲,不知道大家有收获没有。至少感觉自己有点入门了吧。可能大家会说为什么要写这个,那么多的书籍,也有很多的教程。我的出发点是他们大部分的都是以工程师的身份了,或者说已经从事这一块行业比较长的时间了。可能在学习的时候,很多时候他们遇到的问题对于他们来说没什么,但是我们有时候完全搞不明白。但是我觉得我作为一名刚刚学430的大学生来说,可能写出来的更加贴切大家在实际学习。也希望说把每一个问题都可以说到,但是这很难,也希望大家能够指出来,来帮助完成这个教程咯。 (PS:不知道大家有没有遇到说跟着教程做,但是他是对的,自己也是一步一步来的,但是就是不对,完全不知所以然,有时候,真的给气死。) 好了,废话讲了一堆,进入我们今天的学习,我们这次学习的话就是来看看怎么运用官方的库。对于前面两三次的代码我们都是通过直接操作寄存器的方式,(就不解释寄存器了哈,这个概念还是蛮复杂的哈,自行百度)那么还有其他的方式,就是建立在库的层面,也就是我们看不到寄存器了,看到是每一个子函数的函数名了,也就是所谓的API(Application Programming Interface,应用程序编程接口)。可能说的有点抽象哈,我们看下具体长什么样哈。 文件在第一讲的文件当中哈,文件夹MSP-EXP430FR5969_Software_Examples_windows 打开我们看到, 在Readme中我们可以了解整个文件夹的结构和他们的内容。 (就不翻译了,不要嫌我懒,因为真的太多了) 这里我们利用的是上图红色方框中的库文件,打开后目录如下, 我们打开driverlib,里面有个文件夹MSP430FR5xx_6xx,好了,我们看到我们的库了。 好多好多好多。。。。。。。其实TI官方也挺懒的,有没有发现每个文件都只是以模块命名的,没有说使用与那些单片机,当以后大家下载TI其他芯片的库的时候发现他也是这样做的,哎。等等我们来改造一下好了。 我们开的这个文件夹430BOOST-SHARP96_GrlibExample_FR5969是一个TI官方的一个Demo 我们看下怎么导入这个工程哈。 打开ccs,点击files 单击Import 选择 Code Composer Studio下面的CCS Project 单击Browse,找到你的文件夹,记住是430BOOST-SHARP96_GrlibExample_FR5969,这个文件夹。单击Finish即可。但是这里我犯了一个错误,就是我把这个工程放在了中文路径下,如果大家要编译这个工程的话一定要放在英文路径下。大家就可以在工程的那个窗口中找到我们的工程,可以看看目录长什么样,这里我们就不讲了,我们看看怎么用这个库。 我们这里要运用外设库,我们右键复制上面的driverlib,然后右键我们新的工程名,选择粘贴即可。 接下来我们需要更改一下路径,把我们刚刚添加进来的文件的路径加进去。右键工程名选择properties。 单机黑色方框中的按钮, 选择workspace。 选择driverlib。单击ok即可。 接下来我们就可以进行程序编写了。但是有个问题就是我们该如何使用这个库呢?TI官方有个网站来说明这些库函数的具体使用方法,我再最后给出了该网站的HTML文件,方便大家使用。 还有一份PDF的说明文件,建议用这个吧。在附件中。路径如下。 (PS:上面的方法是不用msp430ware的方法,大家可以通过msp430ware的安装来完成一样的功能。430ware我不是很熟悉,这里就不介绍了,之后有机会我们在说说它的使用) 现在我们使用库文件来实现上次讲的按键中断点亮led的功能。 第一步同样还是需要关闭看门狗,我们建立工程的时候选择了带有main.c的工程,已经帮我们写好了main函数和关闭看门狗的语句,这里就不在写了。 第二步就是要关闭LPM5模式,我们看下怎么用库。 所先第一步要将我们所有的库文件包含进来, #include “driverlib.h” 在PDF文件夹中,我们在PMM章节中找到关闭LPM5的方法。 只需这样写:PMM unlockLPM5(); (关于函数的具体内容我们直接点击PDF文件中蓝色的文字即可马上跳转过去,很方便。) 接下来我们需要配置引脚方向,跳转到GPIO章节。 这里列出了所有的函数列表,方便我们查找(对英文有一定挑战!!年轻人,这有什么,不就是英文嘛,打开有道词典,别怂!!) GPIO_setAsOutputPin(GPIO_PORT_P1,GPIO_PIN0);//设置为LED端口为输出 GPIO_setOutputHighOnPin(GPIO_PORT_P1,GPIO_PIN0);//设置LED默认输出为点亮 GPIO_setAsInputPin(GPIO_PORT_P1,GPIO_PIN1);//设置为按键端口为输入 GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P1,GPIO_PIN1);//配置按键上拉电阻 GPIO_selectInterruptEdge(GPIO_PORT_P1,GPIO_PIN1,GPIO_HIGH_TO_LOW_TRANSITION); //设置按键输入下降沿触发 GPIO_enableInterrupt(GPIO_PORT_P1,GPIO_PIN1);//使能按键端口中断 上面我们就完成了端口的设置 #pragma vector = PORT1_VECTOR //该语句用来标识我们所列矢量的中断服务函数 如果这句不是很理解也没关系,暂且明白,就是要这么用。 下面就是我们的中断函数了。我们将上次的代码全部改成用库函数来编写。 __interrupt void PORT1_ISR(void) { unsigned int Key = 0; Key = GPIO_getInputPinValue(GPIO_PORT_P1,GPIO_PIN1); if(Key == 0) { __delay_cycles(50000); if(Key == 0) { GPIO_toggleOutputOnPin(GPIO_PORT_P1,GPIO_PIN0); } } GPIO_clearInterrupt(GPIO_PORT_P1,GPIO_PIN1); } 这里再解释几个问题,关于__delay_cycles(10000)是调用了系统函数,但是函数的具体意思我也不是很明白,希望大家可以帮忙回答哈。 解释一下按键的延时,为什么要这样。因为按键是属于机械机构,具有不稳定性,需要进行一段时间才可以稳定,刚按下状态是不定,产生抖动。通过延时去除这种不稳定性。我们这里使用的是软件消抖,当然也通过硬件的方式,并联一个电容即可,但是这样就增加了硬件成本。 附件中给了另外一份库文件,如果大家没有下载之前的文档也没关系,使用方法也和上面类似的,就是把driverlib拷贝到你的工程目录下面然后右键工程选择Import下面的import, 选择File System然后找到工程目录下的driverlib就可以了。其他的和上面一样。 得到下面的工程目录。同样的在properties中配置路径。不再做一边了哈。
driverlib_2_21_00_08.part01.rar
(10 MB, 下载次数: 260
)
driverlib_2_21_00_08.part02.rar
(10 MB, 下载次数: 222
)
driverlib_2_21_00_08.part03.rar
(2.26 MB, 下载次数: 77
)
|
|
相关推荐
|
|
|
|
|
|
|
|
这三个驱动库有区别吗?
|
|
|
|
|
|
|
|
|
|
|
|
就是楼主您上传的
|
|
|
|
|
|
|
|
|
|
|
|
明白了,谢了哈
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
楼主好人,请问现在在哪高就
|
|
|
|
|
|
|
|
|
|
|
|
有个问题想请教一下,MSP430进入低功耗模式,LPM0-LPM4这5种,唤醒后程序分别从哪个地方开始运行?是从上次进入低功耗模式的地方,还是复位从头开始? 万分感谢! |
|
|
|
|
|
wang496952046 发表于 2017-5-12 10:43 看不同的低功耗模式有差异,有的是复位运行,有的是产生一个中断唤醒,要具体看手册的说明 |
|
|
|
|
|
我用的是5529的板子 建工程也是5529 用的driverlib的库 有这么多个错误
Description Resource Path Location Type #20 identifier "CS_BASE" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 116 C/C++ Problem #20 identifier "CS_BASE" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 196 C/C++ Problem #20 identifier "CS_BASE" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 290 C/C++ Problem #20 identifier "CS_BASE" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 358 C/C++ Problem #20 identifier "CS_BASE" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 394 C/C++ Problem #20 identifier "CS_BASE" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 430 C/C++ Problem #20 identifier "CS_BASE" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 479 C/C++ Problem #20 identifier "CS_BASE" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 511 C/C++ Problem #20 identifier "CS_BASE" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 530 C/C++ Problem #20 identifier "CSKEY" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 196 C/C++ Problem #20 identifier "CSKEY" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 290 C/C++ Problem #20 identifier "CSKEY" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 358 C/C++ Problem #20 identifier "CSKEY" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 394 C/C++ Problem #20 identifier "CSKEY" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 430 C/C++ Problem #20 identifier "CSKEY" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 479 C/C++ Problem #20 identifier "CSKEY" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 511 C/C++ Problem #20 identifier "CSKEY" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 530 C/C++ Problem #20 identifier "DCOFSEL_0" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 120 C/C++ Problem #20 identifier "DCOFSEL_0" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 151 C/C++ Problem #20 identifier "DCOFSEL_1" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 123 C/C++ Problem #20 identifier "DCOFSEL_1" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 154 C/C++ Problem #20 identifier "DCOFSEL_2" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 126 C/C++ Problem #20 identifier "DCOFSEL_2" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 157 C/C++ Problem #20 identifier "DCOFSEL_3" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 129 C/C++ Problem #20 identifier "DCOFSEL_3" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 160 C/C++ Problem #20 identifier "DCOFSEL_4" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 132 C/C++ Problem #20 identifier "DCOFSEL_4" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 163 C/C++ Problem #20 identifier "DCOFSEL_5" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 135 C/C++ Problem #20 identifier "DCOFSEL_5" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 166 C/C++ Problem #20 identifier "DCOFSEL_6" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 138 C/C++ Problem #20 identifier "DCOFSEL_6" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 169 C/C++ Problem #20 identifier "DCOFSEL_7" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 118 C/C++ Problem #20 identifier "DCOFSEL_7" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 149 C/C++ Problem #20 identifier "DCORSEL" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 116 C/C++ Problem #20 identifier "HFFREQ_0" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 551 C/C++ Problem #20 identifier "HFFREQ_1" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 556 C/C++ Problem #20 identifier "HFFREQ_2" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 546 C/C++ Problem #20 identifier "HFFREQ_3" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 541 C/C++ Problem #20 identifier "HFXTBYPASS" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 536 C/C++ Problem #20 identifier "HFXTDRIVE_3" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 569 C/C++ Problem #20 identifier "HFXTOFF" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 533 C/C++ Problem #20 identifier "HFXTOFFG" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 248 C/C++ Problem #20 identifier "HFXTOFFG" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 559 C/C++ Problem #20 identifier "LFXTBYPASS" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 366 C/C++ Problem #20 identifier "LFXTBYPASS" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 399 C/C++ Problem #20 identifier "LFXTBYPASS" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 438 C/C++ Problem #20 identifier "LFXTBYPASS" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 482 C/C++ Problem #20 identifier "LFXTDRIVE_3" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 380 C/C++ Problem #20 identifier "LFXTDRIVE_3" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 455 C/C++ Problem #20 identifier "LFXTDRIVE0_L" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 364 C/C++ Problem #20 identifier "LFXTDRIVE0_L" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 436 C/C++ Problem #20 identifier "LFXTDRIVE1_L" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 364 C/C++ Problem #20 identifier "LFXTDRIVE1_L" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 436 C/C++ Problem #20 identifier "LFXTOFF" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 361 C/C++ Problem #20 identifier "LFXTOFF" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 399 C/C++ Problem #20 identifier "LFXTOFF" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 433 C/C++ Problem #20 identifier "LFXTOFF" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 482 C/C++ Problem #20 identifier "LFXTOFF" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 514 C/C++ Problem #20 identifier "LFXTOFFG" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 208 C/C++ Problem #20 identifier "LFXTOFFG" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 369 C/C++ Problem #20 identifier "LFXTOFFG" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 402 C/C++ Problem #20 identifier "LFXTOFFG" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 440 C/C++ Problem #20 identifier "LFXTOFFG" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 484 C/C++ Problem #20 identifier "OFS_CSCTL0_H" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 263 C/C++ Problem #20 identifier "OFS_CSCTL0_H" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 345 C/C++ Problem #20 identifier "OFS_CSCTL0_H" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 385 C/C++ Problem #20 identifier "OFS_CSCTL0_H" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 414 C/C++ Problem #20 identifier "OFS_CSCTL0_H" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 459 C/C++ Problem #20 identifier "OFS_CSCTL0_H" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 465 C/C++ Problem #20 identifier "OFS_CSCTL0_H" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 496 C/C++ Problem #20 identifier "OFS_CSCTL0_H" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 517 C/C++ Problem #20 identifier "OFS_CSCTL0" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 196 C/C++ Problem #20 identifier "OFS_CSCTL0" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 290 C/C++ Problem #20 identifier "OFS_CSCTL0" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 358 C/C++ Problem #20 identifier "OFS_CSCTL0" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 394 C/C++ Problem #20 identifier "OFS_CSCTL0" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 430 C/C++ Problem #20 identifier "OFS_CSCTL0" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 479 C/C++ Problem #20 identifier "OFS_CSCTL0" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 511 C/C++ Problem #20 identifier "OFS_CSCTL0" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 530 C/C++ Problem #20 identifier "OFS_CSCTL1" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 116 C/C++ Problem #20 identifier "OFS_CSCTL2" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 304 C/C++ Problem #20 identifier "OFS_CSCTL3" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 306 C/C++ Problem #20 identifier "OFS_CSCTL4_L" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 364 C/C++ Problem #20 identifier "OFS_CSCTL4_L" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 436 C/C++ Problem #20 identifier "OFS_CSCTL4" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 361 C/C++ Problem #20 identifier "OFS_CSCTL4" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 399 C/C++ Problem #20 identifier "OFS_CSCTL4" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 433 C/C++ Problem #20 identifier "OFS_CSCTL4" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 482 C/C++ Problem #20 identifier "OFS_CSCTL4" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 514 C/C++ Problem #20 identifier "OFS_CSCTL4" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 533 C/C++ Problem #20 identifier "OFS_CSCTL5" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 208 C/C++ Problem #20 identifier "OFS_CSCTL5" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 369 C/C++ Problem #20 identifier "OFS_CSCTL5" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 402 C/C++ Problem #20 identifier "OFS_CSCTL5" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 440 C/C++ Problem #20 identifier "OFS_CSCTL5" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 484 C/C++ Problem #20 identifier "OFS_CSCTL5" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 559 C/C++ Problem #20 identifier "SELM__HFXTCLK" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 244 C/C++ Problem #20 identifier "SELM__LFMODOSC" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 226 C/C++ Problem #20 identifier "SELM__LFXTCLK" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 202 C/C++ Problem #20 identifier "SELM__MODOSC" is undefined cs.c /Function/driverlib/MSP430FR5xx_6xx line 238 C/C++ Problem gmake: *** [driverlib/MSP430FR5xx_6xx/cs.obj] Error 1 Function C/C++ Problem gmake: Target 'all' not remade because of errors. Function C/C++ Problem |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2969个成员聚集在这个小组
加入小组2752 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3254 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2293 浏览 1 评论
4734 浏览 1 评论
2510 浏览 1 评论
1031浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3256浏览 2评论
2753浏览 1评论
1158浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-2 13:31 , Processed in 1.375206 second(s), Total 78, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号