打印

求教msp430-485串口通信的问题

[复制链接]
3123|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhoumingzr|  楼主 | 2012-9-21 00:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
测试环境:
1)485芯片用的是TI的sn65hvd11,单片机用是TI的msp430F2618.
2)用了一个rs232-rs485的转换器,和一个rs232-USB的数据线

问题:
请前辈帮看下代码,哪里有错误没?串口助手始终收不到数据。单步调试中,UCA1TXBUF实终有数据存在,且UCA1TXIFG无法置位。
我怀疑,是否我的时钟源,或者波特率配置有问题?

望前辈不吝赐教!谢谢

以下是代码:
/*****************************************************************************\
文件名:main.c
描述:MSP430 RS485示例程序
\*****************************************************************************/
#include <msp430x26x.h>
#define DRE_OUT P4DIR |=BIT0 //连接485芯片的DE,RE端口的IO设置为输出
#define DE P4OUT |=BIT0 //设置485芯片处于发送状态
#define RE P4OUT &=~BIT0 //设置485芯片处于接收状态
void Set_UART1(void);
/***********主函数************/
void main(void)
{
unsigned int i;
WDTCTL = WDTPW + WDTHOLD; //关闭开门狗
BCSCTL3|=(XT2S_2+XCAP_2); //设置XT2为3--16MHZ范围
BCSCTL1&=~XT2OFF; //启动TX2
BCSCTL1|=DIVA_1; //LFXT1工作在低频模式,ACLK为2分频

do
{
IFG1 &=~OFIFG; //清除振荡器失效标志
for(i=0xFF; i>0;i--); //延时,待稳定
}
while ((IFG1&OFIFG)!=0); //若振荡器失效标志有效
/* Select SMCLK = XT2 - MCLK = XT2 */
BCSCTL2 |= SELM_2+SELS+DIVS_3; //MCLK为8MHz,SMCLK为1MHz


DRE_OUT;
DE;
Set_UART1();

while(1)
{
UCA1TXBUF =0xaa;
while(!(UC1IFG&UCA1TXIFG));//等待发送结束
UC1IFG &=~UCA1TXIFG;
}
}
/*****************************
函数名称:Set_UART1
功能:设置MCU的UART1对应的寄存器
参数:无
返回值:无
******************************/
void Set_UART1(void)
{
P3SEL |=0xC0; //将P3.6,P3.7选做UART1的通信端口

UCA1CTL1|=UCSWRST; //进入复位状态
//UC1IE &=~(UCA1TXIE | UCA1RXIE);
UCA1CTL0=0x00; //设置为USRT模式,无奇偶效验,8位1停,异步
UCA1CTL1|=UCSSEL_2;//选择的时钟源为SMLK,无分频
UCA1BR0=0x68;
UCA1BR1=0x00;
UCA1MCTL=0x40; //设置波特率为9600
UC1IFG &=~UCA1TXIFG; //清除中断标志
UCA1CTL1&=~UCSWRST; //启动UART1
UC1IE |= (UCA1TXIE | UCA1RXIE); //发送or接收中断使能
}

相关帖子

沙发
kunhuangon| | 2012-9-21 00:38 | 只看该作者
先跳过485,将MCU的串口经232电平转换后直接与PC串口连接,这样调试可避免接口硬件的问题,先确定编程无误后再加接口。

使用特权

评论回复
板凳
zrsing| | 2012-9-21 00:43 | 只看该作者
请问楼主,你的这个代码,232转485后,485信号出去后和谁联呢,我想问的是,485信号出去后,另一端是什么接收呢。

使用特权

评论回复
地板
figo20042005| | 2012-9-21 09:02 | 只看该作者
先不接485,只和PC做通信,看串口有没有有问题,没问题再接485,如有问题则为硬件

使用特权

评论回复
5
lasbell2012| | 2012-9-24 23:17 | 只看该作者
软件上貌似没有问题,检查检查硬件吧

使用特权

评论回复
6
hawksabre| | 2012-9-25 18:53 | 只看该作者
按楼上的来吧   分析问题  尽量采用控制变量法    控制一个变量不变   对另一个变量进行分析   自己到淘宝上买一个232转USB的接口   将232的传输信号直接透过USB传给PC机   这样可以先忽略485硬件问题   查错相对简单一点

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

127

帖子

1

粉丝