历史上的今天
今天是: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++); } } }
上一篇:430的时钟模块介绍
下一篇:msp430的基本时钟源
史海拾趣
|
中长期规划---螺旋式上升方式修改完善职业之路 一、中长期职业发展的自我准备 1、心态上随时做好准备 机会是给有准备的人的------“有准备”是你在做准备的过程中让“别人”认为你“有准备”!别人是包括你现在的老板和别的老板,以及你身边的人 ...… 查看全部问答> |
|
麦克斯韦的《电磁通论》是一本可以和《几何原本》,《自然哲学的数学原理》相提并论的一本电磁领域的巨著。 额,因为我还没怎么看——绪言部分,逼着我回头去看 多元微分学,现在还没看到实质。 另外这本书的地位和历史意义人所尽知,所以也就不 ...… 查看全部问答> |
|
关于WINCE的无线通信部分,wince里提供一个Celltsp的组件,TAPI函数调用也是通过Celldll产生作用的,但CellTsp不是开源的,只提供了celltsp.dll与celltsp.lib 在调试过程中发现,拨打普通语音电话可以通过这种方式,但是如果想通过TAPI下传特殊AT ...… 查看全部问答> |
|
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 以上是出现的错误,请看 ...… 查看全部问答> |
|
用STM32是否能实现:输出一组频率占空比50%,100~150KHZ 大家好,用STM32是否能实现:输出一组频率占空比50%,100~150KHZ,可调步进精确到1Hz,就是最小可以1HZ的变化.… 查看全部问答> |
|
本文适用于那些不愿意看英文资料的stm32f初学者,由于本人的英文水平有限而且也是stm32f的初学者,大多数地方保留了中英文对照,有不对的地方欢迎指正。我也希望获得您的支持鼓励我继续翻译其他功能的固件库,同时也欢迎朋友们的加入和我一起 ...… 查看全部问答> |
|
请教高手: 我用1mA得恒流源通过PT100,用4270来检测差分电压信号.问题有2个: 1.F4270要求差分信号是0-1.2V,这个范围是指A0+<1.2,还是A0+ 与A0-的压差小于1.2V? 2. 是否需要加入差分放大器来进行阻抗匹配? 因为4270内部有放大器,是否可以不用再 ...… 查看全部问答> |
|
求助我在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 ...… 查看全部问答> |
|
rt,有没有推荐的altera开发板。价格合理的,外设比较丰富的就行,不需要特别复杂的。本人就是一个初学者,希望达人给推荐个淘宝店,或者,有闲置的也可以交易,非常感谢,在线等。… 查看全部问答> |




