MSP430串行通信到上位机姿态显示上位机

纺织检测及上位机通信系统的设计与实现
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。基于汇编语言的MSP430单片机与上位机间串行通讯的实现--《仪表技术与传感器》2010年06期
基于汇编语言的MSP430单片机与上位机间串行通讯的实现
【摘要】:对MSP430单片机与上位机间串行通讯的硬软件进行了开发,其中,通过电平转换芯片LTC1385实现了单片机与上位机间的硬件连接,在定义的通讯协议的基础上,采用汇编语言开发出了单片机与上位机间串行通讯的程序。调试实验表明硬件设计与软件开发达到了预期的功能要求。
【作者单位】:
【基金】:
【分类号】:TP273.5
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【相似文献】
中国期刊全文数据库
王广炎,方宗德;[J];电子产品世界;2002年23期
陈强,陈学哲,李其儒;[J];广播与电视技术;2002年10期
曹荣贵;[J];微计算机应用;1991年02期
王月姣,朱家驹;[J];中南民族学院学报(自然科学版);1995年01期
顾慰渝,范龙保;[J];电子技术应用;1992年11期
边文广;刘照国;;[J];机械工业信息与网络;2006年01期
李政;[J];计算机应用;1993年04期
秦学礼;[J];电脑;1994年02期
;[J];电子科技;2001年15期
孟岩;崔轶;;[J];程序员;2006年02期
中国重要会议论文全文数据库
丁丕显;;[A];1996中国控制与决策学术年会论文集[C];1996年
文瑾瑜;宋致远;张戎;;[A];2008年全国给水排水技术交流会暨全国水网理事会换届大会论文集[C];2008年
石成英;李天柁;朱文凯;张全虎;;[A];第9届全国核电子学与核探测技术学术年会论文集[C];1998年
胡玉峰;吴乃军;;[A];中国气象学会2006年年会“卫星遥感技术进展及应用”分会场论文集[C];2006年
胡玉峰;吴乃军;;[A];中国气象学会2006年年会“提高大气监测自动化水平、为业务技术体制改革作贡献”分会场论文集[C];2006年
郭伟;金施群;;[A];提高全民科学素质、建设创新型国家——2006中国科协年会论文集(下册)[C];2006年
郭伟;金施群;;[A];提高全民科学素质、建设创新型国家——2006中国科协年会论文集(下册)[C];2006年
于卫平;彭亦功;;[A];中国仪器仪表学会2007学术年会智能检测控制技术及仪表装置发展研讨会论文集[C];2007年
潘全文;房振旭;姜守达;;[A];2007'中国仪器仪表与测控技术交流大会论文集(一)[C];2007年
邓小勇;郭继孚;温慧敏;陈锋;孙建平;高永;朱丽云;;[A];第二届中国智能交通年会论文集[C];2006年
中国重要报纸全文数据库
许义景;[N];电子报;2004年
黄国美;[N];电子资讯时报;2007年
纪丽莉;[N];中国电脑教育报;2004年
李理;[N];中国计算机报;2006年
左仪;[N];电子报;2007年
纪丽莉;[N];中国电脑教育报;2004年
卢庆儒;[N];电子资讯时报;2006年
;[N];中国电脑教育报;2004年
林宗辉;[N];电子资讯时报;2007年
电脑虎;[N];中国电脑教育报;2005年
中国博士学位论文全文数据库
项森;[D];中国科学技术大学;2006年
蔡庆宇;[D];中国科学院研究生院(武汉物理与数学研究所);2004年
韩以伦;[D];太原理工大学;2003年
韩宏;[D];电子科技大学;2003年
中国硕士学位论文全文数据库
贺熙颖;[D];重庆大学;2003年
潘顺成;[D];南京理工大学;2004年
卢丽平;[D];西安理工大学;2002年
黄媛;[D];合肥工业大学;2005年
毕锐;[D];合肥工业大学;2004年
李晓东;[D];四川大学;2001年
李鸿;[D];电子科技大学;2003年
程炜;[D];北京化工大学;2001年
李焕;[D];河海大学;2006年
林秀萍;[D];北方工业大学;2006年
&快捷付款方式
&订购知网充值卡
400-819-9993MSP430 串口UART通信 通过串口调式助手接收字符串乱码,接收单个字符正常_百度知道
MSP430 串口UART通信 通过串口调式助手接收字符串乱码,接收单个字符正常
用MSP430F149
写了个简单的串口通信,过程很简单,接收到电脑上的串口调试助手发来的数据之后,再通过串口给电脑回复一个固定的数据(一个字节)。发送采用查询的方式,接收采用中断的方式,全部代码如下:
#include &msp430x14x.h&/////////串口发送函数,...
我有更好的答案
当你发送一串字符串给单片机的时候,430刚接收到第一个字符于是开始进行回发固定数据给串口助手,可还没发送完毕(发送需要时间,而你尽然在接收中断里发送,这样接受中断就得不到及时响应),你第二个字符串又进来了,于是出错了。(第一件事还没干完,你第二件、第三件。。。全部紧接的来了,要你,你不疯?)这里的问题是你没搞明白整个流程,这个程序框架也不好。这种情况下,你需要建立一个缓存区(FIFO),中断的任务就是把接收到的数据扔到缓存,置标志位,并立马退出!在主程序里发送数据,这样就不会导致接收无法及时响应问题(这个跟蓄水池一样的道理)
采纳率:42%
RXBUF0 成功接收一个字节之后,进入中断程序。一旦进入中断程序或者RXBUF0中的数据被读走之后,相关中断寄存器标志位被清除,然后RXBUF0重新接收新的数据。这就是为什么你接收一个字符很正常的原因。当发送一个字符串的时候,如果已经进入中断函数,但是RXBUF0的数据你还没读走,并且新数据以极快的速度又堆到腚门子上了,进而疯狂的覆盖了RXBUF0中原有的数据,这样你的程序就乱套了,出现乱码很正常。你看看你中断函数里面调用了一个函数,当发送一串数据的时候,你的函数还没有执行完呢、新来的数据就把RXBUF0覆盖了。。。所以说,你可以在先定义一个字符数组,然后在中断函数里面将收到的数据一一码到数组里面,就像垒麻将一样,然后在主函数里面将字符串中的数据一一送到TXBUF0里面发送出去,就行了。应该是这么回事,你测试下看看。
1,有可能接收中断里面没屏蔽中断,导致正常的发送被打断2,可能数据格式设置的问题(起止位校验位数据位等等设置PC和单片机不一致)ps没写过430的串口,仅供参考……囧
为您推荐:
其他类似问题
调式的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。后使用快捷导航没有帐号?
请完成以下验证码
查看: 17531|回复: 21
基于MSP430G2553的串口通信
在线时间307 小时
芯币8689枚
TA的帖子TA的资源
一粒金砂(高级), 积分 361, 距离下一级还需 139 积分
一粒金砂(高级), 积分 361, 距离下一级还需 139 积分
注意一点: lauchpad的J4 跳线帽地方的RX和TX需要竖着插。横着插不能通信。
贡献自己写的MSP430G2553的串口通信代码:使用内部DCO到16M,选择串口通信时钟来源为SMCLK=8M (系统时钟2分频)。& &&&
1.设置波特率为9600。计算方法为:Fclk=SMCLK=8M.& &N=Fclk/;则UCxBRx=INT(N)=833&&(N取整) 。又UCxBRx=UCBR0+(UCBR1*256) ,所以UCxBR1=3;UCxBR0=65 ; UCBRSx=(N-INT(N)) *8=2&&(四舍五入)& &
下面是源代码:
void UartRegCfg()
UCA0CTL1 |=UCSWRST;& && &//reset UART module,as well as enable UART module
UCA0CTL1 |=UCSSEL_2;& &&&//UART clock is SMCLK
UCA0BR0&&|=65;& && && &&&//Baud N=BCLK/rate,rate=9600,BCLK=SMCLK=8M
UCA0BR1&&|=3;
& & UCA0MCTL&&= UCBRS1;& && &//UCBRSx=2
UCA0CTL1 &=~UCSWRST;& &&&//UART reset end
void UartGpioCfg()
P1DIR&&|= BIT2;& && && &&&//P1.2&&UART_TX
P1DIR&&&=~BIT1;& && && &&&//P1.2&&UART_RX
P1SEL&&|= BIT1+BIT2;& && &//select P1.1 and P1.2 as UART port
P1SEL2 |= BIT1+BIT2;
void UartInit()
UartRegCfg();
UartGpioCfg();
/************************************************************************
* Function Name : UARTPutChar
* Create Date :
* Author&&:
* Description :send a character
* Param : cTX is willing to send character
************************************************************************/
void UARTPutChar(unsigned char cTX)
UCA0TXBUF=cTX;
while (!(IFG2&UCA0TXIFG));&&//waiting UCA0TXBUF is empty
& & IFG2&=~UCA0TXIFG;& && && &&&//clear TX interrupt flag
/************************************************************************
* Function Name : UARTGetChar
* Create Date :
* Author&&:
* Description :get a character
* Param : cRX is willing to get character
************************************************************************/
int UARTGetChar(void)
int GetChar=0;
while (!(IFG2&UCA0RXIFG));&&//UCA1RXBUF has received a complete character
IFG2&=~UCA0RXIFG;& && && &&&//clear RX interrupt flag
UCA0TXBUF=UCA0RXBUF;& && &&&//back to display
GetChar&&=UCA0RXBUF;
while (!(IFG2&UCA0TXIFG));&&//waiting UCA0TXBUF is empty
IFG2&=~UCA0TXIFG;& && && &&&//clear TX interrupt flag
return GetC
/************************************************************************
* Function Name : UARTPutstring
* Create Date :
* Author&&:
* Description :output string
* Param : char *str point send string
* return: the length of string
************************************************************************/
int UARTPutstring( char *str)
& &unsigned int uCount=0;
& & uCount++;
& & UARTPutChar(*str);
& &while(*++str!='\0');
& &UARTPutChar('\n');
& &return uC
void SysCtlClockInit()
& & DCOCTL=0;
& & BCSCTL1=CALBC1_16MHZ;
& & DCOCTL =CALDCO_16MHZ;
& & BCSCTL1|=DIVA_1;& & //ACLK =MCLK/2=8M
& & BCSCTL2|=DIVS_1;& & //SMCLK=MCLK/2=8M
[ 本帖最后由 zw 于
09:14 编辑 ]
写进去了,编译正常,可是打开串口助手,发送数据没任何反应啊。求指点。&
在线时间18 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
主函数呢?
在线时间8 小时
TA的帖子TA的资源
非常好用!
但是,不要单步执行,需要全速运行才会出正确结果,建议将函数
void UARTPutChar(unsigned char cTX)
void UARTPutChar(char cTX)
个人观点,仅供参考
在线时间307 小时
芯币8689枚
TA的帖子TA的资源
一粒金砂(高级), 积分 361, 距离下一级还需 139 积分
一粒金砂(高级), 积分 361, 距离下一级还需 139 积分
是的哈。没有用中断的形式。有几个while在那等待的。
在线时间9 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 20, 距离下一级还需 180 积分
一粒金砂(中级), 积分 20, 距离下一级还需 180 积分
回复 楼主 zw 的帖子
写进去了,编译正常,可是打开串口助手,发送数据没任何反应啊。求指点。
在线时间14 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 50, 距离下一级还需 150 积分
一粒金砂(中级), 积分 50, 距离下一级还需 150 积分
这位大哥....launchpad板子可以直接用那个他给的usb线调试串口吗?
当然可以了&
在线时间10 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 20, 距离下一级还需 180 积分
一粒金砂(中级), 积分 20, 距离下一级还需 180 积分
回复 楼主 zw 的帖子
在线时间110 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 54, 距离下一级还需 146 积分
一粒金砂(中级), 积分 54, 距离下一级还需 146 积分
我也是完全没反应,怎么回事啊
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
请楼主回复下为什么我们执行没什么反应 你自己运行是怎么样的结果呀 谢谢楼主
在线时间418 小时
芯币2051枚
E金币907枚
TA的帖子TA的资源
纯净的硅(中级), 积分 969, 距离下一级还需 231 积分
纯净的硅(中级), 积分 969, 距离下一级还需 231 积分
在线时间41 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 54, 距离下一级还需 146 积分
一粒金砂(中级), 积分 54, 距离下一级还需 146 积分
UCA0TXBUF=UCA0RXBUF;& && &&&//back to display
这步的意思是把传输缓存的数据放入到接收缓存,而且楼主也硬件上将RX与TX跳脚进行了连接,如此一来就可以才调试程序里面,例如CCS的debug寄存器窗口里面观看你的tx和rx缓存,理论上你传了什么数据,那么tx和rx缓存内就会放入这个数据的值。硬件设置很重要,也就是说你的tx和rx跳脚必须连接,相当于你把uart短路了,收的数据就是你传的数据。
在线时间3 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 6, 距离下一级还需 194 积分
一粒金砂(中级), 积分 6, 距离下一级还需 194 积分
主函数里不用写些什么吗
在线时间298 小时
E金币407枚
TA的帖子TA的资源
一粒金砂(高级), 积分 324, 距离下一级还需 176 积分
一粒金砂(高级), 积分 324, 距离下一级还需 176 积分
这位大哥....launchpad板子可以直接用那个他给的usb线调试串口吗?
当然可以了
在线时间67 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 6, 距离下一级还需 194 积分
一粒金砂(中级), 积分 6, 距离下一级还需 194 积分
这位大哥....launchpad板子可以直接用那个他给的usb线调试串口吗?
在线时间19 小时
TA的帖子TA的资源
一粒金砂(中级), 积分 6, 距离下一级还需 194 积分
一粒金砂(中级), 积分 6, 距离下一级还需 194 积分
跪求楼主详细讲解使用串口的过程,我也贴了一段官方历程,但是用串口调试无反应。。。找不到原因
在线时间10 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
有没有单片机往上位机发数据的具体程序啊
在线时间8 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 4, 距离下一级还需 1 积分
一粒金砂(初级), 积分 4, 距离下一级还需 1 积分
楼主,为何数据一直重复发送啊,怎么停止发送呢?
在线时间1 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
一粒金砂(初级), 积分 0, 距离下一级还需 5 积分
主函数呢……
在线时间11 小时
TA的帖子TA的资源
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
一粒金砂(初级), 积分 2, 距离下一级还需 3 积分
在线时间321 小时
E金币1034枚
TA的帖子TA的资源
一粒金砂(高级), 积分 398, 距离下一级还需 102 积分
一粒金砂(高级), 积分 398, 距离下一级还需 102 积分
先横着插----下载,然后断电---竖着插, 串口助手显示串口被占用?
论坛测评队员
EEWORLD 官方微信
Powered by如何把单片机的数据通过串口实时传到上位机中?
[问题点数:40分]
如何把单片机的数据通过串口实时传到上位机中?
[问题点数:40分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2014年7月 硬件/嵌入开发大版内专家分月排行榜第二
2013年10月 硬件/嵌入开发大版内专家分月排行榜第三2013年6月 硬件/嵌入开发大版内专家分月排行榜第三2013年3月 硬件/嵌入开发大版内专家分月排行榜第三
匿名用户不能发表回复!|}

我要回帖

更多关于 led显示屏上位机 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信