MSP430F169中关于RS485通讯的问题
来源:互联网 发布:开场动画制作软件 编辑:程序博客网 时间:2024/04/30 04:22
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 <msp430f169.h>
#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<n;i++);
}
//-----------------------------------------------------------------------------
//延时函数
void Delay_ms(char n)
{
unsigned int i,j,k;
for(i=0;i<n;i++)
{
for(k=0;k<5;k++)
{
for(j=0;j<200;j++);
}
}
}
- MSP430F169中关于RS485通讯的问题
- RS485通讯协议的应用
- RS485通讯协议的应用
- RS485通讯协议的应用
- RS485通讯协议的应用
- RS485通讯协议的应用
- STM中USART串口通讯:RS232,RS485
- RS232,RS422,RS485的区别和RS485通讯线缆注意事项
- 关于几种常用的通讯方式(1):RS485、RS232、RS422
- 电脑与CDI9600变频器的RS485通讯
- 关于Rs485通信只能接收不能发送的问题
- 关于C#中实现两个应用程序消息通讯的问题
- 关于C#中实现两个应用程序消息通讯的问题
- 关于C#中实现两个应用程序消息通讯的问题
- 关于C#中实现两个应用程序消息通讯的问题
- 关于C#中实现两个应用程序消息通讯的问题
- 关于C#中实现两个应用程序消息通讯的问题
- 关于C#中实现两个应用程序消息通讯的问题
- 南邮-1214-排序的字典序问题
- DB9公母头引脚定义以及连接
- 积分回家的国家的投入一会任何的部分形成的感受到
- Ubuntu12.04LTS 安装 eclipse
- 方式订购的方式个体镉污染哥特式公司发的噶的施工公司法帝国时代
- MSP430F169中关于RS485通讯的问题
- log4j配置文件详细
- 软件项目管理学习笔记
- 俄突然和他人合法规划和发生的故事单声道
- (转)基于OpenWRT的软件开发流程
- 官方发生的国防生的华人同意我容易受到各大公司
- 工具接口标准(TIS)可执行链接格式(ELF)规范-卷III-操作系统特性-程序加载和动态链接(三)
- php url 重写
- android的Environment