完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 eehome 于 2013-1-5 10:05 编辑
请各位帮下忙,我用MSP430接两个232串口,一面由UART1发给430数据,然后存到数组中,再由UART0发送给PC,这样PC接收到的都是乱码,请问怎么回事?我看了一下应该不是波特率的问题,单独用一个串口接收数据再发送回来也没问题,请大家帮忙提点建议,多谢。 |
|
相关推荐
7 个讨论
|
|
是UART1接到电脑的数据,再由UART0发送回电脑,是这样的吗?你跟电脑那边的接线图怎么样的,贴上来看一下呢?
|
|
|
|
|
|
是我用另一个单片机通过串口线发数据,数据是7位的,循环发送,发一遍之后延时几百毫秒,这个数据直接接到电脑上是没问题的,发给我的单片机的UART1口,存到数组,再由UART2发送到电脑,用的是串口转USB的线,程序如下 /***************************** 用UART1接收数据之后, 用UART0发送数据, 每个数据长7字节 ****************************/ #include "io430.h" typedef unsigned char uchar; uchar num1; uchar num2; uchar chair[]; void main( void ) { WDTCTL = WDTPW + WDTHOLD; // 关狗 P6DIR |= BIT2;P6OUT |= BIT2; // 关电平转换 ME2 |= UTXE1 + URXE1; //使能USART1的TXD和RXD UCTL1 |= CHAR; //选择8-bit字符 UTCTL1 |= SSEL0; //驱动时钟选择ACLK UBR01 = 0x03; //波特率9600 UBR11 = 0x00; UMCTL1 = 0x4A; //调整 UCTL1 &= ~SWRST; //初始化 ME1 |= URXE0 + UTXE0; // 使能USART0 T/RXD UCTL0 |= CHAR; // 8-bit字符 UTCTL0 |= SSEL0; // ACLK UBR00 = 0x03; // 9600 UBR10 = 0x00; // UMCTL0 = 0x4A; // 调整 UCTL0 &= ~SWRST; // 初始化 while(1) { P3SEL |= 0xC0; for(num1=0;num1<7;num1++) { while(!(IFG2 & URXIFG1)); chair[num1]=RXBUF1; //接收数据 } P3SEL |= 0x30; for(num2=0;num2<7;num2++) { while (!(IFG1 & UTXIFG0)); TXBUF0 =chair[num2]; //发送数据 } } } 可电脑上收到的是乱码,本人刚接触430请问一下这是怎么回事? |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2937个成员聚集在这个小组
加入小组2680 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3003 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2272 浏览 1 评论
4703 浏览 1 评论
2484 浏览 1 评论
951浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3003浏览 2评论
2680浏览 1评论
1081浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 17:43 , Processed in 1.250762 second(s), Total 66, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191