一、UART模板
(一)调试后结论
(1)“字符串命令”=多个字节的命令,一个字符就是一个字节大小
Byte和*str都是char
char RxBuffer[];
(2)发送LED时,进行了三次串口中断,这三次中断是连续的,即一次中断后返回主循环后无间隙立即就发生了下一次次串口中断
这意味着,RxIsok = 1;虽然会进行20次,但是实际上主循环只会判断一次,且判断后软件置0,避免清零缓冲区,依然会进行有关0的条件判断
(这同样意味着,RxIsok = 1;因为会进行20次,所以其只表示一个字节传过来了,不表示字符串命令传过来了)
(二)模板
Init_Uart(); TMOD+TCON+SCON+IE;
Service_Uart(); if(RI){写操作 char = SBUF; Bufindex++;RI = 0;}; (if(TI){读操作 SBUF; TI = 0;};)
Uart_SendByte(); 读操作SBUF=BYTE;while(TI==0);TI=0;
Uart_SendString(); do{SendByte(str+k);k++} while(str+k != 0);
Dispose_Uart();{if(strncmp(RxBuffer, "字符串命令内容",命令的字符个数n)==0 {命令说明的功能+需要发送的数据/言语通知/言语统计;})} ++ 缓冲区清零+缓存指针清零(+判断一次的标志置0)
二、运用
(PRE)发送字节来调试
(一)通讯协议_字符串命令
(1)非数字字符
(2)含数字字符
(二)通讯协议_单字节命令
(三)通讯协议——探究:通过结合网格本三、④,去理解LQB综合题或者其他
三、原理、概念、寄存器使用例程
波特率:原理:串行口工作模式+概念:比特率
+硬件图解释过程:串口模式图+中断系统图
+寄存器初始化理解:(TMOD+TCON+SCON+IE)= 串口能用了