共2条
1/1 1 跳转至页
请高手关注一下,串口发送数据出怪事?
问
我用的是MAX3221和MSP430f149
当我在149处发出 0x20,0x30,0x40,0x50,0x60,0x70时
通过串口调试得到的是 0xA0,0xB0,0xC0,0xD0,0xE0,0xF0
但是 0x80,0x90等就正常了
要发出 0xA0,0xB0,0xC0,0xD0,0xE0,0xF0
通过串口调试得到的是 0xA0,0xB0,0xC0,0xD0,0xE0,0xF0
请教诸位高手为什么?
我的程序如下:
/*******************************************************/
/*说明:USART1和上位机进行rs232通讯。*******************/
/*UART0以9600bps,8位数据,1位停止,无效验模式输出******/
/*******************************************************/
#include <MSP430x14x.h>
unsigned char Data[16]={0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90,0xA0,0xB0,0xC0,0xD0,0xE0,0xF0,0xFF};
void Init();
void main(void)
{
unsigned char i;
WDTCTL = WDTPW + WDTHOLD; //停看门狗
Init(); //初始化
while ( 1 )
{
for ( i=0; i<= 7; i++)
{
TXBUF1=Data[i];
while(( UTCTL1&0x01)==0);
}
}
}
void Init(void)
{
//初始化UART1与串口通讯
UCTL1 &= ~SWRST;
UCTL1 = 0x10;
UBR01 = 0x03;
UBR11 = 0x00;
UMCTL0 = 0x4A;
UTCTL1 = 0x10;
ME2 |= 0x30;
//IE2 |= URXIE1;
//初始化端口方向,p3.5为232使能,
P3SEL = 0xC0;
P3DIR = 0x60;
P3OUT = 0x20;
} 答 1: 检查一下串口精灵的数据格式设定(代码位、停止位、校验位) 答 2: 请大家帮忙看看,看来串口通讯有不少人在做,请大家指教!
串口精灵是按8数据1停止无校验做的 答 3: 好象没有错啊。主要是细心!最后一个P3OUT=0x20,为什么要设置呢》不懂! 答 4: 请问斑竹:我在调试通讯时遇到了同样的问题,主要是波特率设置不正确。 答 5: 从数据上看问题出在最高位,仔细检查一下程序。 答 6: 谢谢大家关心,问题OK了,可以结贴了,程序没问题,硬件接触不好,惭愧。 答 7: 服了! 答 8: 硬件?软件?一对分不开又离不了的夫妻 答 9: 人家不是说了吗?作为中断使能当然要设一下. 答 10: 人家不是说了吗?作为中断使能当然要设一下.
当我在149处发出 0x20,0x30,0x40,0x50,0x60,0x70时
通过串口调试得到的是 0xA0,0xB0,0xC0,0xD0,0xE0,0xF0
但是 0x80,0x90等就正常了
要发出 0xA0,0xB0,0xC0,0xD0,0xE0,0xF0
通过串口调试得到的是 0xA0,0xB0,0xC0,0xD0,0xE0,0xF0
请教诸位高手为什么?
我的程序如下:
/*******************************************************/
/*说明:USART1和上位机进行rs232通讯。*******************/
/*UART0以9600bps,8位数据,1位停止,无效验模式输出******/
/*******************************************************/
#include <MSP430x14x.h>
unsigned char Data[16]={0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90,0xA0,0xB0,0xC0,0xD0,0xE0,0xF0,0xFF};
void Init();
void main(void)
{
unsigned char i;
WDTCTL = WDTPW + WDTHOLD; //停看门狗
Init(); //初始化
while ( 1 )
{
for ( i=0; i<= 7; i++)
{
TXBUF1=Data[i];
while(( UTCTL1&0x01)==0);
}
}
}
void Init(void)
{
//初始化UART1与串口通讯
UCTL1 &= ~SWRST;
UCTL1 = 0x10;
UBR01 = 0x03;
UBR11 = 0x00;
UMCTL0 = 0x4A;
UTCTL1 = 0x10;
ME2 |= 0x30;
//IE2 |= URXIE1;
//初始化端口方向,p3.5为232使能,
P3SEL = 0xC0;
P3DIR = 0x60;
P3OUT = 0x20;
} 答 1: 检查一下串口精灵的数据格式设定(代码位、停止位、校验位) 答 2: 请大家帮忙看看,看来串口通讯有不少人在做,请大家指教!
串口精灵是按8数据1停止无校验做的 答 3: 好象没有错啊。主要是细心!最后一个P3OUT=0x20,为什么要设置呢》不懂! 答 4: 请问斑竹:我在调试通讯时遇到了同样的问题,主要是波特率设置不正确。 答 5: 从数据上看问题出在最高位,仔细检查一下程序。 答 6: 谢谢大家关心,问题OK了,可以结贴了,程序没问题,硬件接触不好,惭愧。 答 7: 服了! 答 8: 硬件?软件?一对分不开又离不了的夫妻 答 9: 人家不是说了吗?作为中断使能当然要设一下. 答 10: 人家不是说了吗?作为中断使能当然要设一下.
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图四被打赏50分 | |
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 |