YangHY 发表于 2026-2-14 20:56:30

接着冲哥演示了从串口助手给单片机发数据:

YangHY 发表于 2026-2-14 20:57:55

再看如何从单片机给PC串口助手发数据?

用下面这个函数发字符串:

void Uart2_SendStr( u8 *puts )                //串口数据发送函数
{
    for (; *puts != 0;puts++)   //遇到停止符0结束
    {
      S2BUF = *puts;
      B_TX2_Busy = 1;
      while(B_TX2_Busy);
    }       
}

YangHY 发表于 2026-2-14 21:07:01

有了上面的发送字符串给PC串口助手函数,我们可以打印提示信息给PC的串口助手:

void Usart2_RunTask(void)//串口任务函数
{
        if( Rec_Num >= 6 )                //是否接收到了6位以上的数据
        {
                if(( Rec_Dat == '\n' ) && ( Rec_Dat == '\r' ) )        //末尾判断
                {
                        if( ( Rec_Dat == 'O' ) && ( Rec_Dat == 'P' ) && ( Rec_Dat == 'E' ) && ( Rec_Dat == 'N' ))
                        {
                                passward = 16;
                                passward = 16;
                                passward = 16;
                                passward = 16;
                                Uart2_SendStr( "打开成功!\r\n" );
                        }
                        else if( ( Rec_Dat == 'C' ) && ( Rec_Dat == 'L' ) && ( Rec_Dat == 'O' ) && ( Rec_Dat == 'S' ) && ( Rec_Dat == 'E' ))
                        {
                                passward = 17;
                                passward = 17;
                                passward = 17;
                                passward = 17;
                                Uart2_SendStr( "关闭成功!\r\n" );
                        }
                        Rec_Num = 0;//这个一定要清零,否则下次接收数据会混乱
                }
        }
}

YangHY 发表于 2026-2-14 21:10:32

今天的第十七课程就完成了,下次我们学习第十八课!

YangHY 发表于 2026-2-27 20:13:50

今天我们开始学习第十八集 串口高级应用

YangHY 发表于 2026-2-27 20:16:26

上节课我们是8位数据,灭有校验

今天看看串口通信的奇偶校验

虽然常用的是8位:



YangHY 发表于 2026-2-27 20:18:59

但也会用到校验位的:

串口通信的奇偶校验
偶校验(eveh parity):让传输的数据(包含校验位)中1的个数为偶数。
即:如果传输字节中1的个数是偶数,则校验位为“0”,奇数相反。

YangHY 发表于 2026-2-27 20:21:42

奇校验(odd parity):让传输的数据(包含校验位)中1的个数为奇数。
即:如果传输字节中1的个数是偶数,则校验位为“1”,奇数相反。

YangHY 发表于 2026-2-27 20:24:40

为什么需要加校验呢?
传输过程是单向的,可能存在出错的可能!

奇偶校验的优缺点?
优点1:可以减少数据出错的可能优点2:使用简单便捷
缺点1:奇偶校验的检错率只有50%。因为只有奇数个数据位发生变化能检测到,如果偶数个数据位发生变化则无能为力了
缺点2:奇偶校验每传输一个字节都需要加一位校验位,对传输效率影响很大

YangHY 发表于 2026-2-27 20:27:55

·程序如何实现?使用9位数据位(8位数据+1位校验)

2个方案,一般是用方案2:
页: 90 91 92 93 94 95 96 97 98 99 [100] 101 102 103 104
查看完整版本: 第一课 序言《AI8051U的特点》