3923|16

41

帖子

1

TA的资源

一粒金砂(中级)

楼主
 

【TI首届低功耗设计大赛】关于通信接口的问题讨论 [复制链接]

关于MSP-EXP430FR5969 LaunchPad与电脑通信的问题。加入需要用板子向电脑传输一大批数据需要用什么接口?粗略了解以后有以下两种想法:
1》使用仿真接口与电脑实现数据传输,但是这样的话上位机很难写吧?官方给的OutOfBox_FR5969_GUI功能太局限了,很难实现具体的任务。加入要使用仿真器实现数据传输的话估计需要单独学习内部的协议??
2》使用UART提供RS-232C数据接口,和计算机串口相连来实现数据的传输,这样的话该怎么实现?——通过查阅MSP430FR59xx Mixed-Signal Microcontrollers.pdf发现UART有A0和A1模式,收发引脚分别为P2.0-P2.1和P2.5-P2.6。请问他们有什么区别呢?


————新手发帖,求指点。

最新回复

请问一下,这个程序用于g2452芯片的话,还要怎么修改,才能实现向串口助手发送字符串?   详情 回复 发表于 2014-10-29 22:17
 
点赞 关注

回复
举报

10

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
同问,希望楼主解决后,分享经验
 
 

回复

41

帖子

1

TA的资源

一粒金砂(中级)

板凳
 
刚开始学习开发板呢。第一次来论坛发帖,没注意前人的经验,发现在https://bbs.eeworld.com.cn/thread-449263-1-1.html里面网友ddllxxrr已经提到了串口通信的问题,帮助很大,明天准备开始追逐网友的脚步出发。
 
 
 

回复

1万

帖子

141

TA的资源

版主

4
 
MCU与电脑通讯最适合的方法是通过串口,带有硬件串口的MCU很多,经232电平转换后即可与PC串口互连。如果电脑上没有串口,则可以通过USB-串口桥来实现。关于MSP430FR59xx的串口,务必仔细看器件手册。

点评

谢谢  详情 回复 发表于 2014-10-22 18:29
 
个人签名上传了一些书籍资料,也许有你想要的:https://download.eeworld.com.cn/user/chunyang
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

5
 
当然用 串口。一般用上位机最简单的就是用串口了。
 
 
 

回复

300

帖子

0

TA的资源

一粒金砂(高级)

6
 
https://bbs.eeworld.com.cn/thread-447702-1-4.html
我在里面使用了串口,用的寄存器方式配置的,你可以参考一下,两个不同的引脚是因430里面有两组单独的uart硬件,你可以同时配置两个uart,我用的好像是uart1

点评

恩,讲得真好,发现我落后了好多。。。  详情 回复 发表于 2014-10-22 18:29
 
个人签名世间万物皆系于一键之上~
 
 

回复

41

帖子

1

TA的资源

一粒金砂(中级)

7
 
chunyang 发表于 2014-10-21 23:27
MCU与电脑通讯最适合的方法是通过串口,带有硬件串口的MCU很多,经232电平转换后即可与PC串口互连。如果电 ...

谢谢
 
 
 

回复

41

帖子

1

TA的资源

一粒金砂(中级)

8
 
07611128 发表于 2014-10-22 14:38
https://bbs.eeworld.com.cn/thread-447702-1-4.html
我在里面使用了串口,用的寄存器方式配置的,你可以参 ...

恩,讲得真好,发现我落后了好多。。。
 
 
 

回复

41

帖子

1

TA的资源

一粒金砂(中级)

9
 
本帖最后由 qq1042248300 于 2014-10-24 13:09 编辑

经过折腾终于实现了UART和电脑通信了。感谢网友【07611128】和【不要镇定的玮哥】的无私分享,参见帖子https://bbs.eeworld.com.cn/thread-447702-1-4.html。现在总结一下:
MSP430的UART有A0和A1模式,其中A0模式的收发是P2.1和P2.0。默认的开发板链接USB后就是接通了A0通道的UART的,所以电脑设备管理器看见两个串口——UART就是A0通道的串口
MSp430串口的使用需要配置这几个东西:1、复用uart的引脚;2、初始化一个稳定的时钟;3、串口的设置,包括了波特率,串口模式的使用。参考:https://bbs.eeworld.com.cn/thread-447702-1-4.html网友建立了一个uart.h。可以直接添加进去,然后使用,有发送字符,sendchar函数,发送字符串sendstring函数。参考网友的程序后,根据文档MSP430FR59xx Mixed-Signal Microcontrollers (Rev.D) .pdf MSP-EXP430FR5969 LaunchPadUser guide.pdf的介绍查找寄存器和相应的关系后扩展如下:
——————————————我是调皮的程序分割线————————————
#define UART_H_
//有发送字符,sendchar函数,发送字符串sendstring函数。接口P2.0和P2.1
void uart_init() //初始化串口以及时钟配置
{
        // Configure GPIO
        P2SEL1 |= BIT0 | BIT1;                    // USCI_A0 UART operation
        P2SEL0 &= ~(BIT0 | BIT1);


        // Disable the GPIO power-on default high-impedance mode to activate
        // previously configured port settings
        PM5CTL0 &= ~LOCKLPM5;


        // Startup clock system with max DCO setting ~8MHz
        CSCTL0_H = CSKEY >> 8;                    // Unlock clock registers
        CSCTL1 = DCOFSEL_3 | DCORSEL;             // Set DCO to 8MHz
        CSCTL2 = SELA__VLOCLK | SELS__DCOCLK | SELM__DCOCLK;
        CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1;     // Set all dividers
        CSCTL0_H = 0;                             // Lock CS registers


        // Configure USCI_A0 for UART mode
        UCA0CTLW0 = UCSWRST;                      // Put eUSCI in reset
        UCA0CTLW0 |= UCSSEL__SMCLK;               // CLK = SMCLK
        // Baud Rate calculation
        // 8000000/(16*9600) = 52.083
        // Fractional portion = 0.083
        // User's Guide Table 21-4: UCBRSx = 0x04
        // UCBRFx = int ( (52.083-52)*16) = 1
        UCA0BR0 = 52;                             // 8000000/16/9600
        UCA0BR1 = 0x00;
        UCA0MCTLW |= UCOS16 | UCBRF_1;
        UCA0CTLW0 &= ~UCSWRST;                    // Initialize eUSCI
        //UCA0IE |= UCRXIE;                         // Enable USCI_A0 RX interrupt
}


void sendchar(unsigned char TXData) //发送字符
{
        while (!(UCA0IFG & UCTXIFG));
        UCA0TXBUF = TXData;//参考MSP430FR59xx Mixed-Signal Microcontrollers.pdf的寄存器介绍,接受寄存器为UCA0RXBUF
}


void sendstring(unsigned char *str) //发送字符串
{
        unsigned int i = 0;
        while (*str != '\0') {
                sendchar(*str);
                str++;
        }
}


unsigned char receivechar()//接收字符
{
        unsigned char ch;
        while (!(UCA0IFG & UCRXIFG));
        ch=UCA0RXBUF;
        return ch;
}


void receivestring(unsigned char *str,int n) //接收字符串,指明长度,或者使用结束标志'~',此时i=0即可。
{
        unsigned int i = 0;
        for(i=0;i
        {
                str=receivechar();
        }
}
——————————————我是调皮的程序分割线————————————

包含了四个函数:sendcharsendstringreceivecharreceivestring。基本可以完成UART的全部功能了。然后写了一个简单的函数测试了一下功能:
——————————————我是调皮的程序分割线————————————
#include
#include "driverlib.h"
#include "uart.h"


int main(void) {
    unsigned char str[]="hello";
    unsigned char str1[5];
        WDT_A_hold(WDT_A_BASE); //停止看门狗
        GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0); //表示设置P1.0为输出
        GPIO_setOutputLowOnPin(GPIO_PORT_P1, GPIO_PIN0); //表示设置P1.0为输出低电平
        PMM_unlockLPM5(); //禁止GPIO上电默认高阻抗模式以激活预先配置的端口设置
    uart_init();
    while(1)
    {
            sendstring(str);
            _delay_cycles(2000000);        //延迟
            if(receivechar()=='k')
                    GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0); //设置P1.0开关LED
            receivestring(str1,5);
            if(str1[1]=='k')
                GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0); //设置P1.0开关LED
    }
        return 0;
}
——————————————我是调皮的程序分割线————————————

使用串口调试助手发送一个'k',然后在发送一个'kkkkk',就可以看到LED打开然后关闭........发现这个开发板在没有LCD的情况下貌似就只有LED可以给我折腾了?管理员美女可以申请LCD扩展板嘛?好想用他生孩子....

点评

请问一下,这个程序用于g2452芯片的话,还要怎么修改,才能实现向串口助手发送字符串?  详情 回复 发表于 2014-10-29 22:17
请问可以帮忙一下吗?我用的是G2452芯片,运行的是风火轮的代码,然后我想向串口助手发送一个字符串“有人靠近”,这要怎么实现啊?  详情 回复 发表于 2014-10-29 16:06
淘宝或TI官网找显示屏吧  详情 回复 发表于 2014-10-23 09:14
 
 
 

回复

826

帖子

0

TA的资源

一粒金砂(中级)

10
 
串口中断程序如何写呢?

点评

但是貌似在官方驱动的API里面有一个代码示例,今天太忙了没来得及看。。  详情 回复 发表于 2014-10-23 17:50
我也还没学会。。。。  详情 回复 发表于 2014-10-23 17:48
 
 
 

回复

2万

帖子

74

TA的资源

管理员

11
 
qq1042248300 发表于 2014-10-22 22:02
经过折腾终于实现了UART和电脑通信了。感谢网友【一粒金砂】和【不要镇定的玮哥】的无私分享,参见帖子http ...

淘宝或TI官网找显示屏吧

加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
个人签名

加油!在电子行业默默贡献自己的力量!:)

 
 

回复

41

帖子

1

TA的资源

一粒金砂(中级)

12
 
lilong8470 发表于 2014-10-23 07:17
串口中断程序如何写呢?

我也还没学会。。。。
 
 
 

回复

41

帖子

1

TA的资源

一粒金砂(中级)

13
 
lilong8470 发表于 2014-10-23 07:17
串口中断程序如何写呢?

但是貌似在官方驱动的API里面有一个代码示例,今天太忙了没来得及看。。
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

14
 
qq1042248300 发表于 2014-10-22 22:02
经过折腾终于实现了UART和电脑通信了。感谢网友【07611128】和【不要镇定的玮哥】的无私分享, ...

请问可以帮忙一下吗?我用的是G2452芯片,运行的是风火轮的代码,然后我想向串口助手发送一个字符串“有人靠近”,这要怎么实现啊?

点评

我没有用过你说的芯片,也不知道你说的是什么代码。。。你看看官方提供的API手册吧  详情 回复 发表于 2014-10-29 21:54
 
 
 

回复

41

帖子

1

TA的资源

一粒金砂(中级)

15
 
1314de浪漫 发表于 2014-10-29 16:06
请问可以帮忙一下吗?我用的是G2452芯片,运行的是风火轮的代码,然后我想向串口助手发送一个字符串“有 ...

我没有用过你说的芯片,也不知道你说的是什么代码。。。你看看官方提供的API手册吧
 
 
 

回复

31

帖子

0

TA的资源

一粒金砂(中级)

16
 
qq1042248300 发表于 2014-10-22 22:02
经过折腾终于实现了UART和电脑通信了。感谢网友【07611128】和【不要镇定的玮哥】的无私分享, ...

请问一下,这个程序用于g2452芯片的话,还要怎么修改,才能实现向串口助手发送字符串?

点评

都说我没有用过G2452了——不可能知道,,  详情 回复 发表于 2014-10-30 19:48
 
 
 

回复

41

帖子

1

TA的资源

一粒金砂(中级)

17
 
1314de浪漫 发表于 2014-10-29 22:17
请问一下,这个程序用于g2452芯片的话,还要怎么修改,才能实现向串口助手发送字符串?

都说我没有用过G2452了——不可能知道,,
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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