|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统 驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe |
请教PIC16F917串口问题 |
作者:kinu_liang 栏目:单片机 |
我用PIC16F917编写的串口程序如下: #include<pic.h> #define PORTBIT(adr, bit) ((unsigned)(&adr)*8+(bit)) static bit MCUTX @ PORTBIT(PORTC,6); static bit MCURX @ PORTBIT(PORTC,7); void USART_send(unsigned CHAR byte) { /* OUTPUT one byte */ while(!TXIF) /* set when register is empty */ continue; TXREG = byte; } void delay_100ms(void) { unsigned int i; for(i=0;i<5000;i++); } void main() { TRISC6=0; //串口输出 TRISC7=1; //串口输入 SPBRG=129; TX9=0; BRGH=1;//high speed SYNC=0;//异步方式 SPEN=1;//开串口 TXEN=1;//允许发送 CREN=1;//允许接收 while(1) { USART_send(0x41); delay_100ms(); } } 本意是测试串口输出很多的A 但是在PC机上我接收道的数据是错误的,不知道我的程序出错在何处, 我PC机接收用的是超级终端(一般的串口接收工具也试过了也不行),波特率是9600,数据位8位,停止位1位 望高手指点。 |
2楼: | >>参与讨论 |
作者: systemchip 于 2005/11/3 14:49:00 发布:
程序是不是有问题呀? 改成这样: while(!TXIF); /* set when register is empty */ TXREG = byte; |
3楼: | >>参与讨论 |
作者: kinu_liang 于 2005/11/4 10:18:00 发布:
re 问题已经解决,谢谢 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |