串口初始化自己独立的见解--第九天

1.SM0,SM1 我们一般用     8位UART,波特率可变 (方式1的工作方式)

        SCON :SM2 一般不用,SM0 =0 ,SM1 = 1

        PCON :   有两位 我们不动它,不加速,初始值

       TMOD:8位自动重装定时器,当溢出时将TH1存放的值自动重装入TL1   高四位清零,

                TMOD &=0x0F   :高四位清0

                TMOD |=0x20; 由此变成 M1,M0 为 1 0         8位自动重装模式

        定时器:

                由波特率计算

                TH1 = 0xFD;

                TL1 = 0xFD;  //9600波特率的初值

                TR1 = 1   ; //启动定时器

2.波特率计算

12T:

        2^0 / 32 x 11059200 / 12 (256-t)   = 9600

SCON:

     

TMOD:

波特率计算

串口实现字符串输出

1.自定义初始化串口

void UartInit(void)
{AUXR = 0x01;SCON = 0x40;TMOD &= 0x0F;TMOD |= 0x20;TH1 =0xFD;TL1 =0xFD;TR1 = 1;
}

2.利用串口中断来延迟输出,因为通过手册我们可以知道,发数据的过程中,移位寄存器操作也是消耗时间的,所以我们可以加软件延迟或者中断来抵消这一部分时间

用        TI 

        

void sendByte(char data_msg)
{
    
    SBUF = data_msg;
    while(!TI);       //(TI==0)   
        TI = 0;

}

void sendString(char *str)
{
    while(*str != '\0'){
        sendByte(*str);
        str++;  //指针偏移
    }
}
 

void main()
{
    
    
    UartInit();
    while(1)
    {
        Delay1000ms();
        
        sendString("caoshupei shuai\r\n");   //不加 \r 和 \n 会乱行
    }
}

串口通信编程,PC端发送指令控制LED

1.REN使能端必须让它等于1才能接受数据

B7 B6 B5 B4 B3 B2 B1 B0

0     1   0   1    0    0   0   0

      SM1   0  REN 

2.RI接收中断请求标志位。在方式0,当接收到第八位结束时,硬件自动置位RI = 1;

        响应中断后必须软件复位,即       RI= 0;

2.1 用外部中断函数,不会卡死,同时打开ES外部串口中断和总中断EA;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/835103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何自动(定时/间隔/重复)执行 同步文件、备份打包加密压缩文件

参考下列两个教程结合使用即可: 快捷自由定时重启、注销、关机 如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包) 就是先设定好 勾选对 来源路径’Zip打包,并…

QT作业5

1、聊天室 服务器端 //头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> #include <QTcpSocket> #include <QList> #include <QListWidget> #include <QMessageBox> #include <QDebug> #includ…

渗透之sql注入----二次注入

目录 二次注入的原理&#xff1a; 实战&#xff1a; 第一步&#xff1a;找注入点 找漏洞&#xff1a; 注入大概过程&#xff1a; 第二步&#xff1a;开始注入 二次注入的原理&#xff1a; 二次注入是由于对用户输入的数据过滤不严谨&#xff0c;导致存在异常的数据被出入…

通俗的理解网关的概念的用途(三):你的数据包是如何到达下一层的

其实&#xff0c;这一章我写不好&#xff0c;因为这其中会涉及到一些计算和一些广播等概念&#xff0c;本人不善于此项。在此略述&#xff0c;可以参考。 每台设备的不同连接在获得有效的IP地址后&#xff0c;会根据IP地址的规则和掩码的规则&#xff0c;在操作系统和交换机&a…

暴力数据结构之栈与队列(队列详解)

1.队列的定义 队列是一种特殊的线性表&#xff0c;它遵循先进先出&#xff08;FIFO&#xff09;的原则。在队列中&#xff0c;只允许在表的一端进行插入操作&#xff08;队尾&#xff09;&#xff0c;而在另一端进行删除操作&#xff08;队头&#xff09;。这种数据结构确保了最…

基于Springboot的微乐校园管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的微乐校园管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

Java设计模式 _结构型模式_外观模式

一、外观模式 1、外观模式 外观模式&#xff08;Facade Pattern&#xff09;是一种结构型模式。主要特点为隐藏系统的复杂性&#xff0c;并向客户端提供了一个客户端可以访问系统的接口。这有助于降低系统的复杂性&#xff0c;提高可维护性。当客户端与多个子系统之间存在大量…

【MQTT】mosquitto 的 “下载、交叉编译、使用” 详细教程,手把手搭建一个MQTT Broker

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

传统企业如何实现数字化转型?

随着信息技术的迅猛发展和互联网的普及&#xff0c;数字化转型已经成为企业和组织不可忽视的趋势&#xff0c;数字化转型对企业和组织来说是必要的&#xff0c;它可以提升竞争力&#xff0c;推动创新发展&#xff0c;实现数据驱动决策&#xff0c;提升用户体验并适应未来发展。…

中北大学软件学院javaweb实验二JSP应用开发实验报告

实验时间 2024年4月 25 日17时至 22 时 学时数 4 1.实验名称 实验2&#xff1a;JSP应用开发(2学时) 2.实验目的 &#xff08;1&#xff09;学会编写和运行简单的JSP页面&#xff0c;理解其运行原理&#xff1b; &#xff08;2&#xff09;学会使用JSP的声明、表达式、脚…

Rust 适合哪些场景?

目录 二、Rust 适合哪些场景&#xff1f; 三、Rust 社区的发展趋势如何&#xff1f; 四、Rust 快速搭建一个WebServer服务器 一、Rust是什么&#xff1f; Rust是一门赋予每个人构建可靠且高效软件能力的语言。 Rust 程序设计语言 一门帮助每个人构建可靠且高效软件的语言。…

Python写了for i in range(10)却只打印一遍?

题目&#xff1a;定义一个两个参数的重复打印函数&#xff0c;第一个参数指定要打印的字符串&#xff0c;第二个参数指定要重复打印的次数&#xff0c;在主程序中调用该函数&#xff0c;打印10遍你的学号姓名。 为什么调用函数后结果只打印了一遍? 看了题目感觉就很诡异&#…

爬虫-无限debug场景 解决方式

解决无限debug 场景1 1. 鼠标右键 选择 continue to here&#xff08;此处不停留&#xff09;2. 鼠标右键 选择 edite breakpoint 设置 10 保证条件不成立 这行永远不执行3.方法置空 1. 方法调用加断点2. 控制台 setInterval function name() {}4. 替换文件 5. hoo…

Apache SeaTunnel 正式发布2.3.5版本,功能增强及多个Bug修复

经过两个月的筹备&#xff0c;我们在2.3.4版本基础上进行了新一轮的迭代&#xff0c;本次更新不仅修复了多个关键问题&#xff0c;还引入了若干重要功能增强和性能优化。 在此&#xff0c;我们先提前感谢社区成员的贡献和支持&#xff0c;如果你想升级最新的版本&#xff0c;快…

websocket最大数量的限制问题

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; h…

安全 | 开源入侵防御系统 Snort

目录 Snort 概要 入侵预防系统模式 数据包记录器和嗅探器模式 网络安全学习路线 &#xff08;2024最新整理&#xff09; 学习资料的推荐 1.视频教程 2.SRC技术文档&PDF书籍 3.大厂面试题 特别声明&#xff1a; Snort 概要 Snort 概要 是世界上最重要的开源入…

《十日终焉》中的定律整理-向虫队学习(举例+持续更新)

1、二八定律 二八定律&#xff0c;又称帕累托法则&#xff0c;也叫巴莱多定律。 是19世纪末20世纪初意大利经济学家巴莱多发明的。其中指出&#xff0c;约仅有20%的因素影响80%的结果。也就是说&#xff1a;所有变因中&#xff0c;最重要的仅有20%&#xff0c;虽然剩余的80%占…

实习体验报告怎么写:AI产品助理实习经历

笔灵实习体验报告模版免费分享&#xff0c;更多需要可以点击使用⬇️ https://ibiling.cn/scene/inex?fromcsdnsx 一、实习背景与目的在过去的几个月里&#xff0c;我有幸在一家知名科技公司实习&#xff0c;担任AI产品助理的角色。这次实习让我有机会深入了解AI领域&#x…

JAVA 双亲委派之一

JAVA 双亲委派之一 JVM类加载流程 java语言系统内置了众多类加载器&#xff0c;从一定程度上讲&#xff0c;只存在两种不同的类加载器&#xff1a;一种是启动类加载器&#xff0c;此类加载由C实现&#xff0c;是JVM的一部分&#xff1b;另一种就是所有其他的类加载器&#xf…

ASP.NET学生成绩管理系统

摘要 本系统依据开发要求主要应用于教育系统&#xff0c;完成对日常的教育工作中学生成绩档案的数字化管理。开发本系统可使学院教职员工减轻工作压力&#xff0c;比较系统地对教务、教学上的各项服务和信息进行管理&#xff0c;同时&#xff0c;可以减少劳动力的使用&#xf…