历史上的今天
返回首页

历史上的今天

今天是:2025年03月02日(星期日)

2020年03月02日 | MSP430F169中关于RS485通讯的问题

2020-03-02 来源:eefocus

1、大体框架:实现单片机和PC机之间的通讯。

PC机(USB接口)发送字符,经过USB 转RS232,再经过RS232转RS485,到单片机(RS485 接口)接收字符。


2、程序设计如下: 分步调试的过程中,无论发送什么样的字符,RXBUF1变量始终是0X01。求指导!!!


/***********************************************

程序功能:通过RS485端口接收传感器的数据,然后通过RS232把数据传出到显示屏

------------------------------------------------

测试说明:首先查看RS485接收到的数据,然后用串口调试工具,查看发出的数据,最后再调试显示屏上面内容是否显示正确


温湿度传感器的数据命令格式:01 03 00 00 00 02 C4 0B;01设备地址,03功能号,02表示数据长度,C4 0B表示CRC校验码


************************************************/ 

#include 


#define DRE_out     P3DIR |= BIT3     //连接485芯片的DE,RE端口的IO设置为输出状态

#define DE          P3OUT |= BIT3     //设置485芯片处于发送状态 ,DE为高电平,

#define RE          P3OUT &= ~BIT3    //设置485芯片处于接收状态(RE为低电平,接收器输出使能

char tmp;

void Set_UART1(void);


/****************主函数****************/

void main(void)

{

    WDTCTL = WDTPW + WDTHOLD;                 //关闭看门狗

    P6DIR |= BIT2;P6OUT |= BIT2;              //关闭电平转换

    DRE_out;

     RE;                                   //设置485处于接收状态

    Set_UART1();



    while (1)

    {

      

       _EINT();      //打开全局中断

            

        while(IFG2 & URXIFG1);

            tmp=RXBUF1;

    }

}


/*******************************************

函数名称:Set_UART1

功    能:设置MCU的UART1对应的寄存器

参    数:无

返回值  :无

********************************************/

void Set_UART1(void)

{

    P3SEL |= 0xC0;                            //将P3.6,P3.7选做UART1的通信端口

    ME2 |= UTXE1 + URXE1;                     //使能USART1的TXD和RXD(接收中断使能)

    P3DIR |=BIT6;                         //输出

    P3DIR &=~BIT7;                        //输入

    UCTL1 |= CHAR;                            //选择8-bit字符

    UTCTL1 |= SSEL0;                          //驱动时钟选择ACLK

    UBR01 = 0x03;                             //波特率9600

    UBR11 = 0x00;

    UMCTL1 = 0x4A;                            //调整

    UCTL1 &= ~SWRST;                          //初始化UART状态机

    IE2 |= URXIE1;                            // 使能USART1的接收中断

}



//发送字符串

void SendString(void)

{

        unsigned int i;

        for(i=0;i<=7;i++)

        { 

           while(!(IFG2 & UTXIFG1));                    //等待发送结束 ,UTXIFG1发送中断标志

           TXBUF1 = send_data_buf[i];                  //发送字符

        }

      

  }

//------------------------------------------------------------------------------

//延时函数

void Delay_us(unsigned int n)

{

unsigned int i;

for(i=0;i}

//-----------------------------------------------------------------------------

//延时函数 

void Delay_ms(char n)

unsigned int i,j,k;



for(i=0;i{

for(k=0;k<5;k++)

{

for(j=0;j<200;j++); 

}

}

}

推荐阅读

史海拾趣

Cofan Usa Inc公司的发展小趣事

在快速发展的过程中,Cofan Usa Inc公司意识到供应链管理的重要性。为了确保产品质量和交货期的稳定性,公司开始优化供应链管理流程,与优质供应商建立长期合作关系,并引入先进的供应链管理系统。这些举措有效提升了公司的运营效率和市场竞争力。

富士康(FOXCONN)公司的发展小趣事

面对日新月异的半导体技术,FMS始终保持对创新的执着追求。公司不断加大研发投入,致力于新产品的研发与旧产品的升级换代。同时,FMS还积极关注行业动态,紧跟市场趋势,不断调整和优化产品结构,以满足客户日益多样化的需求。展望未来,FMS将继续秉承“新速勤俭、创造利润、热诚信义、前瞻未来”的经营理念,致力于成为全球半导体供应链中的佼佼者,为客户提供更加优质的产品和服务。

Electroswitch公司的发展小趣事

进入21世纪后,Electroswitch开始积极实施国际化战略。公司通过收购和兼并等方式,不断拓展海外市场。同时,公司还加强了与国际知名企业的合作,共同开发新产品和新技术。这些举措使得Electroswitch的国际化水平得到了显著提升,也为公司的未来发展奠定了坚实的基础。

Bogen Communications Inc公司的发展小趣事

在电子行业的发展过程中,Bogen Communications Inc公司意识到单打独斗难以取得长久的成功。因此,公司积极寻求与其他企业和机构的合作,共同开发新技术、新产品。通过与合作伙伴的紧密合作,公司不仅获得了更多的资源和技术支持,还成功地将产品推向了更广阔的市场。

成都振芯/国腾(CORPRO)公司的发展小趣事

在北斗卫星导航系统的发展过程中,CORPRO始终扮演着重要角色。作为北斗终端的最大供应商之一,CORPRO通过不懈的技术研发和产品迭代,成功实现了北斗设备零部件的国产化。同时,公司还构建了“元器件-终端-系统及运营”的完整产业链,在高性能集成电路板块取得了显著成就。此外,CORPRO还是首批承担“核高基”核心电子器件项目企业中唯一的一家民营企业,体现了其在电子行业的领先地位和创新能力。

微芯(CMOSIC)公司的发展小趣事

为了进一步提升研发实力和市场竞争力,微芯生物开始了并购之路。他们先后收购了多家在生物医药领域具有优势的企业,包括专注于生物制品生产和销售的企业、创新药物研发企业以及提供全方位生物医药研发生产外包服务的企业等。通过并购整合,微芯生物不仅增强了自身的研发实力和市场占有率,还进一步完善了公司的产业链和战略布局。

问答坊 | AI 解惑

3年以上工作经验的工程师的中长期规划

中长期规划---螺旋式上升方式修改完善职业之路 一、中长期职业发展的自我准备 1、心态上随时做好准备 机会是给有准备的人的------“有准备”是你在做准备的过程中让“别人”认为你“有准备”!别人是包括你现在的老板和别的老板,以及你身边的人 ...…

查看全部问答>

电磁通论(上下) PDF

麦克斯韦的《电磁通论》是一本可以和《几何原本》,《自然哲学的数学原理》相提并论的一本电磁领域的巨著。 额,因为我还没怎么看——绪言部分,逼着我回头去看 多元微分学,现在还没看到实质。 另外这本书的地位和历史意义人所尽知,所以也就不 ...…

查看全部问答>

有人做过第三方的TSP吗

关于WINCE的无线通信部分,wince里提供一个Celltsp的组件,TAPI函数调用也是通过Celldll产生作用的,但CellTsp不是开源的,只提供了celltsp.dll与celltsp.lib 在调试过程中发现,拨打普通语音电话可以通过这种方式,但是如果想通过TAPI下传特殊AT ...…

查看全部问答>

FPGA综合仿真错误

Error: Design requires 1087 I/O resources -- too many to fit in 314 available in the selected device or any device in the device family Error: Cannot find device that meets Compiler settings specifications 以上是出现的错误,请看 ...…

查看全部问答>

altium designer 09下下来的库文件怎么用?

最近在学此软件,下下来的库文件不知道怎么添加到软件的库里。高手帮帮忙…

查看全部问答>

用STM32是否能实现:输出一组频率占空比50%,100~150KHZ

                                 大家好,用STM32是否能实现:输出一组频率占空比50%,100~150KHZ,可调步进精确到1Hz,就是最小可以1HZ的变化.…

查看全部问答>

我汉化了全部的24篇STM32F的2.02固件库

本文适用于那些不愿意看英文资料的stm32f初学者,由于本人的英文水平有限而且也是stm32f的初学者,大多数地方保留了中英文对照,有不对的地方欢迎指正。我也希望获得您的支持鼓励我继续翻译其他功能的固件库,同时也欢迎朋友们的加入和我一起 ...…

查看全部问答>

请教4270差分信号输入问题

请教高手: 我用1mA得恒流源通过PT100,用4270来检测差分电压信号.问题有2个: 1.F4270要求差分信号是0-1.2V,这个范围是指A0+<1.2,还是A0+ 与A0-的压差小于1.2V? 2. 是否需要加入差分放大器来进行阻抗匹配? 因为4270内部有放大器,是否可以不用再 ...…

查看全部问答>

请问quartus的原件库不同版本的能通用吗?

求助我在http://www.huanor.com/bbs/showthread.php?t=4557下载的quartus10.1 Quartus 10.1 sp1 下载地址:Quartus 10.1 sp1 Windows版下载:10.1sp1_quartus_windows.exe 760MB10.1sp1_quartus_windows_full.exe 1.3GB10.1sp1_devices_wind ...…

查看全部问答>

有没有推荐的altera开发板

rt,有没有推荐的altera开发板。价格合理的,外设比较丰富的就行,不需要特别复杂的。本人就是一个初学者,希望达人给推荐个淘宝店,或者,有闲置的也可以交易,非常感谢,在线等。…

查看全部问答>