共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电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【我踩过的那些坑】结构堵孔导致的喇叭无声问题被打赏50分 | |
【我踩过的那些坑】分享一下调试一款AD芯片的遇到的“坑”被打赏50分 | |
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
多组DCTODC电源方案被打赏50分 | |
【我踩过的那些坑】STM32cubeMX软件的使用过程中的“坑”被打赏50分 | |
新手必看!C语言精华知识:表驱动法被打赏50分 | |
【我踩过的那些坑】杜绑线问题被打赏50分 | |
【我踩过的那些坑】STM32的硬件通讯调试过程的“坑”被打赏50分 | |
【我踩过的那些坑】晶振使用的问题被打赏100分 |