求命啊!求命啊!为什么PIC16F74单片机I/0口写的数据与读的数据不一样????

2020-02-09 09:35发布

大家好, 以下是我的一个小测试程序,我在程序中先写了数据,然后再把数据读出来利用uart串口发送到串口调试器中,但是我发现写的数据与读到的数据不一样,请大家指点一下。
#include <pic.h>
#define uint unsigned int
#define uchar unsigned char
void  uart_send(uchar n)//串口发送数据函数
{       
                TXIF=0;
             TXREG=n;                /*发出一个字符*/
                   while(TRMT==0);        /*等待写入完成*/
}
void uart_init(void)//串口初始化
{
  TRISC6=0;                 //设置PC6方向为输出
  TRISC7=1;
  SPBRG=0X26;                  //设置波特率为19200BPS,12M
  TXSTA=0X24;                 //使能串口发送,选择高速波特率
  RCSTA=0X90;                 //使能串口工作,连续接收
}
void main(void)
{
        uart_init();//串口初始化
TRISE=0x00;//E端口设为输出
PORTE=0XFF;//E端口设为高电平
        while(1)
        {
                RE0=1;//1
                RE1=0;//0
                RE2=1;//1

                TRISE=0XFF;////E端口设为输入

                uart_send(0xaa);//发送0xaa
                uart_send(RE0);//发送RE0的数据
                uart_send(RE1);//发送RE1的数据
                uart_send(RE2);//发送RE2的数据
                uart_send(0x55);//发送0xaa

                while(1);

        }
}


以下是在串口中看到的数据:

(原文件名:未命名.JPG)
0条回答

一周热门 更多>