登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

请教PIC16F917串口问题

作者:kinu_liang 栏目:单片机
请教PIC16F917串口问题
我用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
程序是不是有问题呀?
改成这样:
while(!TXIF);    /* set when register is empty */
TXREG = byte;


3楼: >>参与讨论
kinu_liang
re
问题已经解决,谢谢

参与讨论
昵称:
讨论内容:
 
 
相关帖子
地址问题
请问大家有没有并口读写SRAM的程序啊
USART问题
关于UL认证
寻找 收音IC   ALP038 的资料.
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号