打印

PIC16F877A串口通信遇到的问题

[复制链接]
2710|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jony.z|  楼主 | 2012-5-7 23:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
串口通信程序写好,但是在串口调试软件中测试,一开串口则一直在发送不能停止。怎么才能让单片机想发送数据的时候才发送?程序该怎么写?请各位高手看看我的程序给点指点,多谢啦!
#include<pic.h>
__CONFIG(0X1832);
#define uchar unsigned char
uchar recdata;
void port_init()
{
PORTC=0X00;  //C口电平清0
TRISC=0x80;  //RC7/RX输入,RC6/TX输出,其余口输出
}
void usart_init()
{
SPBRG=0X33;  //4M晶振,1200波特率
TXSTA=0X20;
RCSTA=0X90;
RCIE=0X01;
GIE=0X01;  //总中断使能
PEIE=0X01;  //外部中断使能
RCREG=0;  //接收缓冲寄存器清0

}
void interrupt receive_data(void)
{
if(RCIF==1)
{
  recdata=RCREG;
  PORTC=recdata;  //C口的LED亮
}
}
void main()
{
port_init();
usart_init();
TXREG=0X01;
while(TRMT==0);
}

相关帖子

沙发
chen3bing| | 2012-5-8 09:37 | 只看该作者
定义个协议,在收到数据时才发送。

使用特权

评论回复
板凳
望断云山| | 2012-5-8 21:30 | 只看该作者
需要发送时开中断,发送完成关中断

使用特权

评论回复
地板
joyme| | 2012-5-9 10:15 | 只看该作者
没看出来你的单片机程序里有发送函数,唯一的可能是你的程序在不断重启执行TXREG=01

使用特权

评论回复
5
ningling_21| | 2012-5-9 13:01 | 只看该作者

...

没有写: while(1){...}

使用特权

评论回复
6
zyjs| | 2013-3-28 15:19 | 只看该作者
楼主,请问你的问题解决了吗?能说说是怎么解决的?

使用特权

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

本版积分规则

9

主题

56

帖子

2

粉丝