3546|12

11

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

悬赏msp430串口通信 电脑端接收高手 [复制链接]

现在要使用msp430G2553 ADC采样模拟信号   UART发送转换后的数字信号到电脑端    奈何智力有限  能力不足  希望找位高手帮忙解决   自有酬谢

最新回复

这是来求助的还是伸手来索要的? 首先问你,有硬件条件不?一块launchpad足矣! 接下来,看过资料不?去ti官网,找到MSP430G2553的产品介绍,打开技术文档,下载里面时数据表和用户指南仔细阅读。 再然后,找例程来阅读,在用户指南里逐个寄存器检索,分析其作用。从用户指南各个外设的结构框图中学习正确使用一个外设需要完成哪些配置和设置。  详情 回复 发表于 2015-5-20 21:34
 
点赞 关注

回复
举报

67

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
这是我刚刚用msp430f122做的串口通信的程序,应该差不多的。你可以找相应的例程,注意你的时钟和波特率的计算,串口线接好就行了。
#include  
void USART_Send(unsigned int pData);
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  unsigned int i;

  unsigned int sdata=0x34;//要发到电脑的数据

  BCSCTL1 &= ~XT2OFF; //开高速晶振
  BCSCTL1 |= XTS; // ACLK = LFXT1 = HF模式
do
{
IFG1 &= ~OFIFG; // 清除振荡器失效标志
for(i = 0Xff;i > 0;i--); // 稳定时间
}
while((IFG1 & OFIFG) != 0); // 如果振荡器失效标志存在
BCSCTL2 |= SELM_2; //?MCLK主时钟选XT2为时钟源.XT2输入不分频.
BCSCTL2 |= SELS; //SMCLK选XT2为时钟源.(参考)

  P3SEL |= 0x30;                            // P3.6,7 = USART1 TXD/RXD
  ME2 |= UTXE0 + URXE0;                     // Enable USART1 TXD/RXD
  UCTL0 |= CHAR;                            // 8-bit character
  UTCTL0 |= SSEL1;                          // UCLK = SMCLK

  U0BR0 = 0x41;                             // 8M/9600 -
  U0BR1 = 0x03;                             //
  UMCTL0 = 0x12;                            // Modulation
/*
  U0BR0 = 0x15;                             // 8M/600 - 3.41
  U0BR1 = 0x34;                             //
  UMCTL0 = 0x12;                            // Modulation
*/
  UCTL0 &= ~SWRST;                          // Initialize USART state machine
  IE2 |= URXIE0;                            // Enable USART1 RX interrupt
  _EINT(); // 不要忘了开中断

  USART_Send(sdata);  


}

//单片机给PC发数据
void USART_Send(unsigned int pData)
{
while ((IFG2 & UTXIFG0) == 0); // 判断:发送是否完成
TXBUF0 = pData; // 装入发送寄存器
}


//PC给单片机发数据
#pragma vector=USART0RX_VECTOR
__interrupt void usart1_rx (void)
{
  while (!(IFG2 & UTXIFG0));                // USART1 TX buffer ready?
  TXBUF0 = RXBUF0;                          // RXBUF1 to TXBUF1
}

 
 

回复

9721

帖子

24

TA的资源

版主

板凳
 
看你的问题,不是很明白,你是想解决电脑端的问题,还是单片机的问题?
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

4
 
littleshrimp 发表于 2015-5-20 10:20
看你的问题,不是很明白,你是想解决电脑端的问题,还是单片机的问题?

电脑端的使用的是labview采集并显示    这个已经搞定了  现在就是下位机有问题  
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

5
 
tanzhiying 发表于 2015-5-20 10:18
这是我刚刚用msp430f122做的串口通信的程序,应该差不多的。你可以找相应的例程,注意你的时钟和波特率的计算,串口线接好就行了。
#include  
void USART_Send(unsigned int pData);
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  unsigned int i;

  unsigned int sdata=0x34;//要发到电脑的数据

  BCSCTL1 &= ~XT2OFF; //开高速晶振
  BCSCTL1 |= XTS; // ACLK = LFXT1 = HF模式
do
{
IFG1 &= ~OFIFG; // 清除振荡器失效标志
for(i = 0Xff;i > 0;i--); // 稳定时间
}
while((IFG1 & OFIFG) != 0); // 如果振荡器失效标志存在
BCSCTL2 |= SELM_2; //?MCLK主时钟选XT2为时钟源.XT2输入不分频.
BCSCTL2 |= SELS; //SMCLK选XT2为时钟源.(参考)

  P3SEL |= 0x30;                            // P3.6,7 = USART1 TXD/RXD
  ME2 |= UTXE0 + URXE0;                     // Enable USART1 TXD/RXD
  UCTL0 |= CHAR;                            // 8-bit character
  UTCTL0 |= SSEL1;                          // UCLK = SMCLK

  U0BR0 = 0x41;                             // 8M/9600 -
  U0BR1 = 0x03;                             //
  UMCTL0 = 0x12;                            // Modulation
/*
  U0BR0 = 0x15;                             // 8M/600 - 3.41
  U0BR1 = 0x34;                             //
  UMCTL0 = 0x12;                            // Modulation
*/
  UCTL0 &= ~SWRST;                          // Initialize USART state machine
  IE2 |= URXIE0;                            // Enable USART1 RX interrupt
  _EINT(); // 不要忘了开中断

  USART_Send(sdata);  


}

//单片机给PC发数据
void USART_Send(unsigned int pData)
{
while ((IFG2 & UTXIFG0) == 0); // 判断:发送是否完成
TXBUF0 = pData; // 装入发送寄存器
}


//PC给单片机发数据
#pragma vector=USART0RX_VECTOR
__interrupt void usart1_rx (void)
{
  while (!(IFG2 & UTXIFG0));                // USART1 TX buffer ready?
  TXBUF0 = RXBUF0;                          // RXBUF1 to TXBUF1
}

多谢大侠   UART串口通信的 跟adc的例程段子我也找了不少   可是最后试验下来总是有问题   
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

6
 
我也在搞这个,测电压然后传到pc上,不解中。

点评

你都有哪些不解 说出来 我看看  详情 回复 发表于 2015-5-20 13:48
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

7
 
月影荒城 发表于 2015-5-20 12:45
我也在搞这个,测电压然后传到pc上,不解中。

你都有哪些不解  说出来 我看看
 
 
 

回复

114

帖子

0

TA的资源

一粒金砂(高级)

8
 
问题也不是看的很明白,这里出问题的地方有很多,比如说单片机的串口没有配置好、串口线R和T接反、USB转232线的兼容性不够等等;你看看是否可以逐个排查。
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

9
 
still1945 发表于 2015-5-20 13:48
你都有哪些不解  说出来 我看看

我有一个例程,用adc采样,什么都不接,却显示一个值应该是工作电压,3.3左右。

点评

我也是什么都没接 直接发送数据了  详情 回复 发表于 2015-5-20 15:32
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

10
 
月影荒城 发表于 2015-5-20 15:31
我有一个例程,用adc采样,什么都不接,却显示一个值应该是工作电压,3.3左右。

我也是什么都没接  直接发送数据了
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

11
 
用手机端我懂弄

点评

跪求大神指教 活命就行  详情 回复 发表于 2015-5-20 15:39
 
 
 

回复

11

帖子

0

TA的资源

一粒金砂(中级)

12
 
eonce 发表于 2015-5-20 15:36
用手机端我懂弄

跪求大神指教  活命就行  
 
 
 

回复

1193

帖子

0

TA的资源

纯净的硅(高级)

13
 
这是来求助的还是伸手来索要的?
首先问你,有硬件条件不?一块launchpad足矣!
接下来,看过资料不?去ti官网,找到MSP430G2553的产品介绍,打开技术文档,下载里面时数据表和用户指南仔细阅读。
再然后,找例程来阅读,在用户指南里逐个寄存器检索,分析其作用。从用户指南各个外设的结构框图中学习正确使用一个外设需要完成哪些配置和设置。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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