|
查看: 6692回复: 4
发表于 2019-3-10 15:32:08
只看该作者
本帖最后由 电赛小编 于 2019-4-11 17:41 编辑
【项目内容与选题】
我此次参与TI—RSLK活动是通过老师的分享与建议从而了解到的,是想借此机会多了解有关于MSP432 单片机编程与实现,从而参与电子设计竞赛的,所以项目内容定为MSP 432单片机的学习与应用。
【项目机器人组装】
在学习MSP432单片机的过程中,我首先进行的是机器人的组装与装配,装配过程只需要按照手册上的步骤与要求,逐步进行便可,注意细节上的安装问题就应该会顺利完成,遇到的问题就是焊板子,单片机上有一排孔是需要焊接在上面的,由于我这方面的经验不足,比较吃力,我认为要想做研究、设计,需要在各个方面精通,才能顺利进行。
【项目:MSP432单片机学习与应用】
后来,我通过查阅书籍《基于ARM Cortex-M4F 内核的MSP432 MCU 开发实践》,以及在TI的网页上浏览相关的资料来学习关于该机器人嵌入单片机系统的相关基础知识和设计思路。首先我在TI的网站上下载了CCS的安装包以及相关的实验教程,安装过程十分简单、便于操作,实验的内容配合TI官网上的20章的学习内容。我认为单片机的学习要从基础概念、基础知识抓起,才能使学习更加深刻、完整,而不是仅仅学习代码、更改编程过程而已,所以我先学习了MSP432中CPU、寄存器、中断响应等基础知识,包括如何存储、记录32位的数据等等。在学习完基础知识之后,我学习了如何用按键控制LED灯闪烁、控制电机运行、按键测量电压值并用逻辑分析仪进行电路分析等等的实验。
【项目感想总结】
由于我仅对C语言有基础,而对单片机的环境并无深刻理解,所以直接运用起32位的较复杂的MSP432单片机对我来说难度较大,进度较慢,仅学习了前几章的内容,在机器人实现的功能上还是很有限的。在学习MSP432单片机的过程中,我认为最大的难题就是对于数据的存储、使用、记录的问题,这是普通的C语言编程与单片机编程之间最大的不同之处,对于我来说是最困难的,对于单片机的使用,我的感想是单片机,尤其处理的位数越多的单片机,可实现的功能就越多,运用到的领域就越广泛,对于现在的工程师来说,就越需要精通并熟练掌握,这种嵌入式系统,在我们身边的各种电器之中,各种控制器中都在非常广泛的运用着,这些系统与这些机器人或者说是单片机,在构造上并无很多不同,只是由于参数不同、处理器不同、运行位数不同、内存不同,而带来变成上的本质区别,我们掌握了嵌入式系统的精髓,便可任意的去设计、开发嵌入式系统,使其实现我们需要的功能。
以下:
为MSP432单片机及机器人开机和实验的视频。
[media=x,500,375] http://m.iqiyi.com/w_19s6wziwdd. ... &p1=2_22_221&isrd=1[/media]
http://m.iqiyi.com/w_19s6wzhi99.html?social_platform=link&p1=2_22_221&isrd=1
例子:MSP432单片机——LED跳转实验代码
- #include <stdint.h>
- #include "msp.h"
- #include "..\inc\TExaS.h"
- #include "..\inc\Clock.h"
- uint8_t sensor;
- int Program8_1(void){
- Clock_Init48MHz();
- P5->SEL0 &= ~0x01;
- P5->SEL1 &= ~0x01;
- P5->DIR &= ~0x01;
- P5->REN |= 0x01;
- P5->OUT &= ~0x01;
- while(1){
- sensor = P5->IN&0x01;
- }
- }
- int Program8_2(void){
- Clock_Init48MHz();
- TExaS_Init(LOGICANALYZER);
- P5->SEL0 &= ~0x01;
- P5->SEL1 &= ~0x01;
- P5->DIR &= ~0x01;
- P5->REN |= 0x01;
- P5->OUT &= ~0x01;
- while(1){
- sensor = P5->IN&0x01;
- TExaS_Set(sensor);
- }
- }
- void LED_Init(void){
- P5->SEL0 &= ~0x01;
- P5->SEL1 &= ~0x01;
- P5->DIR |= 0x01;t
- }
- void LED_On(void){
- P5->OUT |= 0x01;
- }
- void LED_Off(void){
- P5->OUT &= ~0x01;
- }
- void LED_Toggle(void){
- P5->OUT ^= 0x01;
- }
- int Program8_3(void){
- Clock_Init48MHz();
- LED_Init();
- while(1){
- LED_On();
- LED_Off();
- }
- }
- int Program8_4(void){
- Clock_Init48MHz();
- TExaS_Init(LOGICANALYZER_P5);
- LED_Init();
- while(1){
- LED_Toggle();
- Clock_Delay1ms(100);
- }
- }
- void Security_Init(void){
- uint8_t Security_InputActivate(void){
- return 0;
- }
- uint8_t Security_InputSensors(void){
- return 0;
- }
- void Security_OutputAlarm(uint8_t data){
- }
- void Security_ToggleAlarm(void){
- }
- int main(void){
- Clock_Init48MHz();
- TExaS_Init(LOGICANALYZER_P5);
- Security_Init();
- while(1){
- }
- }
复制代码
实验学习压缩包可从TI官网下载。
|
-
机器人组装完成(正视图)
-
机器人开机运行
-
LED灯跳转时亮蓝灯
-
LED灯跳转时亮混合白灯
|