| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 987 人关注过本帖
标题:HT46串口通信
取消只看楼主 加入收藏
yangjinze
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-10-2
结帖率:50%
收藏
 问题点数:0 回复次数:2 
HT46串口通信
#include......

#pragma vector uart_isp @ 0x10;
unsigned int data;

void delay(unsigned int time)//延时函数,省略内容
{......
}

void uart_init()//初始化函数
{
_urc1=0x80;
_urc2=0xe4;
_brg=51;
_euri=1;//开串口中断
_emi=1;//开总中断
}

void uart_send(unsigned int data)//发送函数
{
unsigned int i;
_txen=1;
i=_usr;
_txr_rxr=data;
while(~_tidle);
}
void uart_isp()//接收函数
{
a[0]=a1];
a[1]=a[2];
data=_txr_rxr;
while(~_ridle);

}
void main()
{
uart_init();
while(1)
{
uart_send(w[0]);
uart_send(w[1]);
uart_send(w[2]);
delay(..)//延时

}
盛群单片机HT46的串口通信,目的是发送三个自己从键盘输入的字符给单片机,然后单片机发送一样的字符到电脑;
为什么实现不了,求正确例程与解释
搜索更多相关主题的帖子: 通信 延时 include 
2012-01-06 19:25
yangjinze
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-10-2
收藏
得分:0 
回复 2楼 zaixuexi
老大,我也知道是UART,能帮我吗?
还有另外一个问题
#include "HT46RU232.h"
#pragma vector uart_isr @ 0x10
unsigned int x;
unsigned char w[2];
void delay(unsigned int time)
{  
 unsigned int i;
 for(i=0;i<time;i++)
 _delay(2000);
 
 }
 
void uart_init()
{
 
 _ucr1=0x80;
 //_ucr2=0xef;
 _ucr2=0xe4;
 _brg=51;
 _euri=1;
 _emi=1;
 
 }
 
void uart_send(unsigned int data)
{
 unsigned int i;
 _txen=1;
 i=_usr;
 _txr_rxr=data;
 while(~_tidle);
 
 }
 
void uart_isr()
{
 unsigned int i;
 if(_txr_rxr=='1')
 {
  _txr_rxr='a';
   }
 else
 {     
  _txr_rxr='y';
  }
 void main()
{
 //unsigned char data='h';
uart_init();
while(1)
{
uart_send('b');
delay(1000);
delay(1000);
delay(1000);
}
}通HT46串口通信的为我指点迷津。我通过串口调试看结果,uart_send('b');这语句是给单片机发送b,但通过
if(_txr_rxr=='1')
 {
  _txr_rxr='a';
   }
 else
 {     
  _txr_rxr='y';
  }返回的应该是y,但结果是b
2012-01-07 13:13
yangjinze
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-10-2
收藏
得分:0 
偌大论坛,没人研究HT46?
2012-01-08 19:48
快速回复:HT46串口通信
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016389 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved