(学习日记)2023.4.10

news2024/11/24 11:26:12

写在前面:
由于时间的不足与学习的碎片化,写博客变得有些奢侈。
但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。
既然如此
不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录,记录笔者认为最通俗、最有帮助的资料,并尽量总结几句话指明本质,以便于日后搜索起来更加容易。


标题的结构如下:“类型”:“知识点”——“简短的解释”
部分内容由于保密协议无法上传。


点击此处进入学习日记的总目录

2023.4.10

  • 一、51:串口通信
  • 二、51:串口发送出现低时延相同十六进制数字
  • 三、51:串口发送中文汉字

一、51:串口通信

  1. 设置串口初始化,根据板子的参数更改设置
    在这里插入图片描述
    由于直接设4800误差太大,2400误差为0.16,所以可以用2400翻倍得到4800

在这里插入图片描述

在这里插入图片描述

(PS:由于个人的板子问题,4800总是出现乱码,所以下文实际使用的为9600

此时,初始化的函数如下:

#define FOSC 12000000L     // 系统频率为12MHz
#define BAUD 9600          // 波特率为9600
void UartInit(void)		
{
	PCON |= 0x80;         // SMOD = 1,波特率加倍
	SCON = 0x50;          // 8位数据位,允许接收,模式1
  	TMOD &= 0x0F;         // 定时器1模式设为8位自动重载
  	TMOD |= 0x20;
  	TH1 = TL1 = -(FOSC/12/16/BAUD); // 定时器1初始值 (等同用0xFF-(FOSC/12/16/BAUD))
  	TR1 = 1;              // 启动定时器1
  	ES = 1;               // 开启串口中断
  	EA = 0;               // 全局中断关闭
}

其中,PCON打开B7:控制SMOD翻倍
在这里插入图片描述
在这里插入图片描述
SCON设为 0x50:控制数据位数,并允许接收
在这里插入图片描述
TMOD 高四位先置0,然后将定时器的M11:打开定时器1,并设置定时器1的模式
在这里插入图片描述
在这里插入图片描述

  1. 编写 串口发送数据函数
/*
发送数字
Byte:发送内容
*/
void UART_SendByte(unsigned char Byte)
{
	SBUF = Byte;                    // 将数据放入发送缓冲区
  	while(!TI);                    // 等待发送完成
  	TI = 0;                        // 清除发送完成标志位
}

在这里插入图片描述

SBUF
在这里插入图片描述
TI:发送控制器
TI1时,说明正在发送;当TI0时,说明发送完成;
TI需要软件置0,所以最后加上 TI=0;

  1. (拓展)编写 串口发送数据串函数
#include <string.h>

/*
发送字符串
String[]:字符串内容
*/
void UART_SendString(unsigned char *str)
{
	unsigned char i = 0;
	for (i = 0; i < strlen(str); i++)
		UART_SendByte(str[i]);
	UART_SendByte('\n');
}

二、51:串口发送出现低时延相同十六进制数字

  1. PC端接收数据如图所示:
    在这里插入图片描述
    而程序如下所示,很明显系统出现了一些错误,只能重复的输出第一个字符。
UART_SendString("bobobobobo");
  1. 解决问题
    经过排查,终于发现了问题源自 全局中断
    在这里插入图片描述
在初始化程序中,将:
EA = 1;               // 全局中断开启
改为
EA = 0;               // 全局中断关闭
即可避免上述问题

三、51:串口发送中文汉字

只需要将汉字放到 UART_SendString()函数中即可,如:

UART_SendString("啵啵啵,中午吃什么呢"); 

在这里插入图片描述

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

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

相关文章

杰林码图像增强算法——超分辨率、图像放大、轮廓和色彩强化算法(二)

一、前言 2023-03-23我发布了基于加权概率模型&#xff08;杰林码的理论模型&#xff09;的图像颜色增强和轮廓预测的应用方法。效果还不太明显&#xff0c;于是我又花了2周的时间进行了技术优化。下面仅提供了x86下的BMP和JPG对应的lib和dll&#xff0c;本文中的算法属于我国…

为什么CPU需要时钟

为什么CPU需要时钟 为什么CPU需要时钟这样一个概念? 什么是时钟脉冲&#xff0c;CPU为什么需要时钟&#xff0c;时钟信号是怎么产生的&#xff1f; 上面这个图的方波就是一个脉冲&#xff0c;类比于人类的脉搏跳动。一个脉冲称之为CPU的一个时钟信号&#xff0c;或者时钟脉冲…

Melis4.0[D1s]:6.mango-MQ-R基于Melis移植lvgl

文章目录1.下载lvgl源码到《D1s-Melis/ekernel/drivers/hal/test/disp2》目录1.1 修改Makefile1.2 快速测试Makefile修改是否有效2.移植刷新显示内存函数dummy_flush_cb3.创建一个定时器调用lvgl心跳lv_tick_inc()4.pack打包出错&#xff1a;5.设置开机启动6.源码下载上一篇文章…

《类和对象》(上)

本文主要对类和对象有一个初步的了解。 文章目录前言1、类的引入和定义2、类的访问限定符及封装2.1 访问限定符2.2 封装3 、类的作用域4 、类的实例化5 、类对象的模型5.1 类对象的大小5.2 类对象存储方式6、this 指针6.1 引子6.2 特性6.3 this指针的一个问题前言 C语言是面向过…

【微信小程序】-- 分包 - 独立分包 分包预下载(四十五)

&#x1f48c; 所属专栏&#xff1a;【微信小程序开发教程】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &…

VRIK+Unity XR Interaction Toolkit 实现VR上半身的追踪(附带VRM模型导入Unity方法和手腕扭曲的解决方法)

文章目录&#x1f4d5;第一步&#xff1a;配置 OpenXR XR Interaction Toolkit 的开发环境&#x1f4d5;第二步&#xff1a;导入人物模型⭐VRM 模型导入 Unity 的方法&#x1f4d5;第三步&#xff1a;配置 VRIK⭐给模型加上 VRIK 组件⭐将模型的头部和手部的位置作为 VR 追踪目…

如何用ChatGPT做设计?激发设计师们的灵感

伴随着人工智能技术的迅猛发展&#xff0c;AI 工具在设计领域中的应用也越来越广泛。 当前&#xff0c;诸如ChatGPT等 AI 工具不仅可以进行自然语言处理&#xff0c;还可以应用于图像、视频等多种媒体领域&#xff0c;为设计师们提供了丰富的应用场景。 使用Chatgpt&#xff1…

开源了,我做了一个基于GPT的桌宠聊天系统:Pet-GPT!

前言 最近chatgpt的热度高居不下。作为一个深度成谜者&#xff0c;发现大部分开发者在调用GPT的时候要不就是基于Tauri做本地窗口外接网页&#xff0c;要不就是web直接展示。在沉思苦想一段时间后&#xff0c;才发现好像没啥什么人用pyqt做啊&#xff1f;特别是没人用桌面宠物…

浏览器:好用的浏览器插件,亲测好用

插件一、CSDN&#xff0c;推荐指数五颗星&#xff0c;强烈推荐 说明&#xff1a;超级好用的浏览器桌面&#xff0c;功能强大&#xff0c;操作简单&#xff0c;效率神器 插件二、AIX智能下载器 说明&#xff1a; 就这么简单的拖放即可实现保存图片&#xff0c;即使观看中的视频…

凌恩生物美文分享|好看又实用,多组学联合分析项目大揭秘!

基因层面的功能潜能有没有真的实现表达&#xff0c;表达量是高是低&#xff1f;下游合成的蛋白质行使了什么样得功能&#xff0c;代谢产物通过体循环到达靶器官&#xff0c;又是如何影响靶器官的工作运行的&#xff1f; 一个完整的生物学故事&#xff0c;中心法则贯穿始终&…

2023十大连锁店进销存软件排名(真实测评)

目前市面上很多连锁店进销存软件的排名都比较主观&#xff0c;结合自己实际工作过程中接触过的软件和在进销存软件多年的经验&#xff0c;给大家整理下2023十大连锁店进销存软件&#xff0c;希望能帮到正在选择连锁店进销存软件的老板&#xff01; 第一名&#xff1a;秦丝连锁联…

机器学习 | 实验三:逻辑回归和牛顿法

⭐ 对应笔记&#xff1a;牛顿法 &#x1f4da;描述 在本练习中&#xff0c;我们将使用牛顿法对分类问题实现逻辑回归。 &#x1f4da;数据 在本练习中&#xff0c;假设一所高中有一个数据集&#xff0c;该数据集表示40名被大学录取的学生和40名未被录取的学生。 每个(x(i),y…

pandas笔记:offset.DateOffset

进行date的偏移 class pandas.tseries.offsets.DateOffset 1 参数说明 n 偏移量表示的时间段数。 如果没有指定时间模式&#xff0c;则默认为n天。 normalize是否将DateOffset偏移的结果向下舍入到前一天午夜**kwds 添加到偏移量的时间参数 年&#xff08;years&#xff09…

软考软件设计师 数据库知识点笔记

概念数据模型 了解即可 结构数据模型 数据库的三级模式结构 外模式对应视图 概念模式对应的是数据库管理系统里面的基本表 内模式对应的是数据库里的一些存储文件 上图可直接背下面概念 两级映像 有内模式跟物理独立性相关&#xff0c;有外模式跟逻辑独立性相关 两级映像其…

MySQL主从复制原理剖析与应用实践

vivo 互联网服务器团队- Shang Yongxing MySQL Replication&#xff08;主从复制&#xff09;是指数据变化可以从一个MySQL Server被复制到另一个或多个MySQL Server上&#xff0c;通过复制的功能&#xff0c;可以在单点服务的基础上扩充数据库的高可用性、可扩展性等。 一、背…

人工智能AI简史

AI人工智能简史 最近学习AI&#xff0c;顺便整理了一份AI人工智能简史&#xff0c;大家参考&#xff1a; 1951年 第一台神经网络机&#xff0c;称为SNARC&#xff1b;1956年 达特茅斯学院会议&#xff0c;正式确立了人工智能的研究领域&#xff1b;1966年 MIT发明ELIZA人机心…

【Java|golang】2409. 统计共同度过的日子数

Alice 和 Bob 计划分别去罗马开会。 给你四个字符串 arriveAlice &#xff0c;leaveAlice &#xff0c;arriveBob 和 leaveBob 。Alice 会在日期 arriveAlice 到 leaveAlice 之间在城市里&#xff08;日期为闭区间&#xff09;&#xff0c;而 Bob 在日期 arriveBob 到 leaveBo…

数字孪生灌区信息化-灌区现代化建设

平台概述 柳林数字孪生灌区信息化平台以物理灌区为单元、时空数据为底座、数学模型为核心、水利知识为驱动&#xff0c;对物理灌区全要素和建设运行全过程进行数字映射、智能模拟、前瞻预演&#xff0c;与物理灌区同步仿真运行、虚实交互、迭代优化&#xff0c;实现对物理灌区…

企业不会用、不敢用AIGC+ 服务怎么办,不妨试一下它?

自从去年ChatGPT上线后,国内外与AIGC相关的话题就一直备受关注。AIGC是指人工智能通用语言模型(Artificial General Language Model),是一种具有极高自然语言理解能力的人工智能模型,其通过大规模语料库训练,能够像人类一样自然地理解和生成语言。ChatGPT正是基于AIGC技术开发的…

数据挖掘(3.1)--频繁项集挖掘方法

目录 1.Apriori算法 Apriori性质 伪代码 apriori算法 apriori-gen(Lk-1)【候选集产生】 has_infrequent_subset(c,Lx-1)【判断候选集元素】 例题 求频繁项集&#xff1a; 对于频繁项集L{B,C,E}&#xff0c;可以得到哪些关联规则&#xff1a; 2.FP-growth算法 FP-tre…