打印

pic16f877a uart 不能发送

[复制链接]
1327|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
阳甜木青|  楼主 | 2012-7-11 15:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,这是我写的一段 UART 的程序,但是不能发送,不知道为什么,请各位大侠多多指教!!!我用的是12M的晶振。。。。
#include<pic.h>
#define uchar unsigned char
#define uint  unsigned int
void init();
void delay()
{
unsigned int k;
for(k=0;k<300;k++);
}
void main()
{
init();
while(1)
{
  TXREG=0xff;  //发送数据
  while(!TRMT); //等待TXREG寄存器清空
  TXREG=0x00;  //发送另一串数据
  while(!TRMT);
}
}
void init()
{
TRISC=0xc0;
TXSTA=0x20;// 使能发送,选择低速
RCSTA=0x00;//禁止接收
SPBRG=25;  //波特率设置为9600
}
沙发
diweo| | 2012-7-11 19:04 | 只看该作者
TRISC=0xc0把TRISC6设为1,就是输入了

使用特权

评论回复
板凳
yimankehao| | 2012-7-12 10:09 | 只看该作者
你好,波特率设置没有问题,但是SPEN没有使能。
  TXREG=0xff;  //发送数据
  while(!TRMT); //等待TXREG寄存器清空
  TXREG=0x00;  //发送另一串数据
  while(!TRMT);
另外这几句建议这样写:
  TXREG=0xff;
  while(TRMT);
TRMT为1说明状态时TSR为空。为0 TSR正处于移位发送

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
阳甜木青 + 1 我很赞同
地板
阳甜木青|  楼主 | 2012-7-12 11:16 | 只看该作者
嗯嗯,,发现这个问题了,谢谢哟。。。。现在还有个问题,就是我用的是CH341 的usb转uart 不懂为什么调试助手收不到信息。。

使用特权

评论回复
5
yimankehao| | 2012-7-12 13:32 | 只看该作者
可能是你的USB驱动没有装好,你可以装一个驱动精灵来检测驱动是否装好。

使用特权

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

本版积分规则

0

主题

3

帖子

0

粉丝