串口(两个实例)

您所在的位置:网站首页 uefi书籍 串口(两个实例)

串口(两个实例)

2023-05-26 13:37| 来源: 网络整理| 查看: 265

最近做了两个东东。GPS授时时钟;蓝牙音箱控制接收机。

GPS 用到 9600波特率 蓝牙控制使用115200波特率

开始时完全不会串口 参考书也只是按部就班列明要点,而我基础为零。

寻找资料过程找到 细水长流者的论文和 阿熊话太多的简易教程。突然就做出来了

感谢 细水长流者 论文 http://t.csdn.cn/V8adt

【学渣版的51单片机教程,第十一节串口通信-哔哩哔哩】 https://b23.tv/JSY9wUI

参考书《51单片机轻松入门》

要点,9600波特率初始化,可以使用isp工具生成在这里插入图片描述 每行都有其意义 (参考阿熊话太多视频)AUXR两行可以不要 void UartInit(void) //[email protected] { PCON &= 0x7F; // SCON = 0x50; // //AUXR &= 0xBF; // //AUXR &= 0xFE; TMOD &= 0x0F; TMOD |= 0x20; TL1 = 0xFD; TH1 = 0xFD; ET1 = 0; TR1 = 1; EA = 1;//打开中断总开关 ES = 1; //打开串口开关 }

这样11MHz的芯片使用9600波特率可以运行良好(STC12C5A60S2) 在这里插入图片描述 上面的代码(细水长流者论文里) 解析一下。

interrupt 4 using 3//打开中断4 使用第三组寄存器 if(RI==1)//如果接收到一帧完整的信号 RI=0;//继续接收下一帧。这一行很关键让串口继续运行而不是终止 temp=SBUF;//把这完整的帧的值取出来 gpsRxBuffer[RX_count++]=temp;//把值送进数组。这样就可以任意使用数值了。实际运行是 gpsRxBuffer[RX_count]先赋值然后再++

实际调试过程可以放入代码 //SBUF = temp; //把得到的数值发送出去 //while (!TI); // TI = 0 [B]如果串口运行了,就能接收到正确的数值,也就是可以通过它配合串口助手检验代码是否有效运行。[/B]

串口掌握了,数码世界的大门基本为你打开!

115200波特率。首先说明11MHz的芯片是不能产生这个波特率(除非它有特殊特性) 这一次使用的芯片是 STC15W204S 最大工作频率达到35MHz 经实验 使用33.1776MHz

又因为ISP 提示: 芯片型号 : STC15W204S关于此芯片的重要说明: 有定时器0和定时器2 (注意:无定时器1) 有比较器 (可当作一路ADC使用)

只能使用定时器2

void UartInit(void)//[email protected] { SCON = 0x50; AUXR |= 0x01; //这回要使用AUXR AUXR &= 0xFB; T2L = 0xFA; //定时器2 T2H = 0xFF; AUXR |= 0x10; EA =1; ES =1; }

void RECEIVE_DATA(void) interrupt 4 using 3 { if (RI) { unsigned char temp = 0; RI=0; temp = SBUF; if(temp ==0xCB || temp ==0x4B)//CB next { RX_Count = 1; } if(temp == 0xCC || temp == 0x4C)//CC prev { RX_Count = 2; } if(temp == 0xC6 || temp ==0x46)//C6 pause/play { RX_Count = 3; } SBUF = temp; while (!TI); TI = 0; } } 上面判断得到结果就用case语句运行done! 主程序 while(1) { switch(RX_Count){ case 1: LE1 = 0; Delay200ms(); //延迟代码千万不要放到中断代码里,笑 LE1 = ~LE1; case 2: LE2 = 0; Delay200ms(); LE2 = ~LE2; case 3: LE3 = 0; Delay200ms(); LE3 = ~LE3; } RX_Count = 0; }

唠叨。其实我能完全明白整个中断的设置吗。不能 整个中断机制的硬件实现会吗? 不会 你只是在全抄代码! 【GPS时钟制作全过程-哔哩哔哩】 https://b23.tv/2qTa2dF 【串口通信学习不保证你能学会系列-哔哩哔哩】 https://b23.tv/qosKiOj 【原文照读-哔哩哔哩】 https://b23.tv/lvwcsbP

卫星收音机1.0 1.2 被我按坏的蓝牙音箱 浔峰山顶 GPS授时时钟

在这里插入图片描述

STC15W204S



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3