STM32 IIC with 0.96 OLED
IIC 通信原理基本介绍点击跳转
原理介绍Init硬件层 需要接上拉电阻(保证传输稳定性)
代码1234void IIC_Init(){ IIC_SCL=1; IIC_SDA=1;}
Start物理层 IIC总线的SCL保持高电平,SDA由高电平变为低电平后,延时(>4.7us),SCL变为低电平。
步骤
SCL 高
SDA 高->低 + 延时(>4.7us)
SCL 高->低
代码123456789void IIC_Start(){ IIC_SCL=1; IIC_SDA=1; delay_us(5); IIC_SDA=0; delay_us(5); IIC_SCL=0; }
Tramsmit Data物理层 传输时,SDA的宽度应该大于SCL的宽度,在SCL为高时读取SDA,SCL为低时改变SDA的电平。
==注意:==传输数据过程总不允许SDA变化(否则会被视为开始或停止信号)
步骤
拉低SCL进行数据传输
SDA传送高低电平(0或1)
SCL在高电平时期读取SDA的数据 ...
mqttSender
用于记录项目mqttSender
regenm/mqttSender
MqttSenderdescriptionA Software For me to send message to my mqtt serverSo that I can contral my devices such as esp32 ,esp8266.
Another purpose is to learn python tkinter(GUI lib)
Technique
python tkinter
python pyinstaller
python mqtt
requirements analization v1.0GUIversion1.0
conponents
1 text call box(for output)
1 entry box (for input)
a send button()
features(or limits? qwq )
simple
change server(ip address, password , topics) by editing sourc ...
《爱你就像爱生命》
《爱你就像爱生命》王小波
你相信吗?什么样的灵魂就要什么样的养料。……没有像样的精神生活就没有一代英俊的新人。
我非常憎恨那些浅薄的人和自甘堕落的人,他们要把世界弄到只适合他们生存。因此我“愤懑”,看不起他们,不想这样却毒害了自己,因为人不能总为自己活着啊。我应该爱他们。如果人们不懂友爱,爱正义,爱真正美的生活,他们就是畸形的人,也不会有太崇高的智慧,我们的国家也就不会太兴盛,连一个渺小的我也在劫难逃要去当生活的奴隶。如果我不爱他们,不为他们变得美好做一点事情的话。这就是我的忏悔。你宽恕我吗,我的牧师?
我真的不知怎么才能和你亲近起来,你好像是一个可望而不可及的目标,我捉摸不透,追也追不上,就坐下哭了起来。
人是轻易不能知道自己的,因为人的感官全是向外的,比方说人能看见别人,却不能看见自己;人可以对别人有最细微的感觉,对自己就迟钝得多。
一个像你这样的灵魂可以给人多么大的助力,给人多少温暖啊!你把你灵魂的大门开开,放我进去吧!
以后少写信多见面好不好?写信我爱瞎说,见面就敬重了。我愿意敬重你,再说我的字写得多寒碜哪!再见!
今天我过生日,徒长一岁何乐 ...
《人间天堂》
《人间天堂》菲茨杰拉德 我说不出为什么,其实比起来那本《了不起的盖茨比》,我更喜欢这本《人间天堂》。我也先是读完了《人间天堂》再去读的《了不起的盖茨比》。
这本书给我带来了太多的共鸣,即使我和Amory是两个来自截然不同世界的人。
电子笔记中的译文质量实在不如我纸质笔记本摘抄的高。下次再换个版本吧。(真的有下次吗?)
他所知道的那个迪克·亨博德,那个记忆中富有魅力、有着独特个性的人,以及能唤起对他记忆的一切——噢,这一切现在都变得让人恐惧,绝无半点高贵气质,都已被碾作尘土。所有的悲剧都带给人离奇怪诞又肮脏作呕的紧张情绪——如此毫无价值,不值一提……像动物一样死去……艾默里记起了他童年时代在某个巷子里看到的那只被碾轧在地的血肉模糊、惨不忍睹的猫。
她能够胜任大多数乏味的家务(尽管她足够聪明,
从不会让诸如编织和刺绣这些“闺阁女红”把自己困住),然而,在料
理完家务之后,她立刻就可以拿起一本书,让自己的思绪如同空中变
幻莫测的云朵一样随风漫步。她个性中最为深沉的底色是她由内而外
散发出的夺目的金色光彩,正如黑暗房间中的一团明火,可以用浪漫
和温情照亮围绕在周围的安静面孔, ...
STM32 PROJECT keyboard
之前就有使用别烧好的MCU来进行键盘客制化,始终觉得不得劲。仅仅只是设计了键位PCB和外观,虽然也学到了点东西,但是我就是不爽啊。有一种核心技术自己没掌握的感觉。
新坑_STM32_KEYBOARD 开始!
二话不说就弃坑了一段时间。。。
直接上手STM32有些难了点,先用了别人的方案试试先。基于 sayo monkey board的键盘
Layout基于网站[keyboard-layout-editor](Keyboard Layout Editor (keyboard-layout-editor.com))设计,同时使用Plate & Case Builder - swillkb)导出DXF。
PCB设计 其实很简单,就是模块套模块,画一下 板子的封装即可。
外壳设计 只是简单的用亚克力打的,CAD还不是很会用。
RUST basic
RUST简介优点内存安全性:
Rust 提供了内存安全的保证,通过所有权系统、借用检查器和生命周期检查器,可以在编译时捕获大多数常见的内存安全问题,如空指针解引用、数据竞争等。
并发安全性:
Rust 的所有权和借用系统使得编写并发程序更加容易和安全。它通过编译时检查来避免数据竞争和多线程错误,使得编写并行代码更加可靠。
性能:
Rust 允许开发者获得接近底层语言(如 C 和 C++)的性能,因为它提供了对内存和并发的细粒度控制,同时不需要牺牲安全性和抽象性。
表达能力:
Rust 具有功能强大的类型系统和模式匹配功能,使得开发者可以以一种清晰、灵活的方式表达复杂的数据结构和逻辑。
资源管理:
Rust 的所有权模型允许开发者在编写代码时显式地管理资源,避免了像内存泄漏和使用后释放的问题。它还通过 RAII(资源获取即初始化)模式自动管理资源生命周期。
生态系统:
虽然相对较年轻,但 Rust 生态系统不断壮大,拥有丰富的库和工具,支持各种应用场景,从嵌入式系统到网络服务都有涉及。
跨平台性:
Rust 具有良好的跨平台支持,可以轻松地在各种操 ...
Raspberry Pi
嘿嘿开新坑!(目前基于python) 早就久仰树莓派大名,奈何前两年芯片减产导致树莓派价格居高不下,甚至翻倍。现在终于降下来了,于是斥巨资买了一块3B前来学习。本篇Blog用于记录我的探索历程。
目前打算先使用python进行学习,待到有一定理解之后再使用C。
1. 装系统! 要什么桌面环境,直接上命令行!
2.联网-WIFI
方法一:使用系统工具
1sudo raspi-config
选择系统选项,地区之后就可以通过ssid和pask进行联网
再使用ifconfig查看是否连接成功(会分配新的 ip 地址)
方法二:使用系统配置/etc/
12345678910# 一开始没有VIMsudo nano /etc/wpa_supplicant/wpa_supplicant.conf# add network={ ssid="ssid_name" key_mgmt=WPA-PSK psk="password"}
3. 创建新用户并授权 总不能一直用root吧,qwq ...
PCB Technique
PCB Technique 本篇课程基于B站UP主Expert电子实验室的教学视频,同时加上本人思考与总结汇总而成。
零基础入门PCB设计保姆级教学
Expert电子实验室
本部分笔记为扫盲篇(基础篇)
==进阶需实战,纸上得来终觉浅,绝知此事要躬行。==
1. 电路设计1.1 原理图四要素
元件符号
连接线
结点
注释
1.2 基本原件介绍1.2.1 电阻
对于贴片电阻的读数
1)3位读数:前2位为有效数字,第3位表示10的n次幂(也可以理解为0的个数)。精度为±5%
2)4位读数:前3位为有效数字,第4位表示10的n次幂(也可以理解为0的个数)。读法和3位的原理一样,精度为±1%
3)阻值小于10的读数:通常在两个数之间插入一个字母R,用字母R来代替小数点
1.2.2 电容
主要功能:储能和滤波
单位计算
1uF=1000nF;1nF=1000pF
分类
读数以及含义
1.2.3 电感 Inductor,
单位换算
1H=1000mH;1mH=1000uH;
主要功能:滤波,扼流, ...
Operating System Principles
==操作系统原理==
1.操作系统概论2.操作系统接口用户与操作系统接口的分类
用户接口 提供给用户使用,通过该接口取得操作系统的服务。
程序接口 提供给程序员使用,用户程序使用系统服务的唯一途径
用户接口(操作接口)
联机用户接口(交互式)
脱机用户接口(批处理 )
联机用户接口(交互式)
字符显示式联机用户接口
命令行方式:shell 语言
批命令方式:.sh
图形化联机用户接口
GUI :包括窗口,图标,菜单,鼠标和面向对象技术
脱机用户接口(批处理 )由一组作业控制语言组成。
作业:一次应用业务处理中,从输入开始到输入结束。用户要求计算机所做工作的集合。
作业步:作业加工处理的技术
作业分类:脱机作业,联机作业。
作业I/O方式:联机IO,脱机IO,SpooLing方式
系统调用系统调用(System Call),提供了用户程序和操作系统之间的接口。用户不能直接调用,但是用户程序可以。
作业
作业:在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做工作的集合。
作业步:作业加工处理的步 ...
Computer Composition Principle
计算机组成原理
==HIghLIght ==
计算机系统概论计算机基本组成冯诺依曼计算机
特点
五大部件:运算器(ALU),控制器(CU),存储器(MEM),输入输出(I/O)
指令与数据同等地位存储与存储器
使用二进制
指令由操作码和地址码组成
指令在存储器内顺序存放
以运算器为中心(现代计算以存储器为中心)
计算机工作过程存储器的基本组成
存储体:由存储单元组成(存储单元由存储原件组成,存储原件存储0和1)
存储字:存储单元中的二进制代码组合(?)
存储字长:
MAR:存储器的地址寄存器
MDR:存储器的数据寄存器
运算器的基本组成以及操作过程
ACC: 被加数,被减数,乘积高位,被除数,余数
ALU(算术逻辑单元):
MQ: 乘数,乘积低位
控制器的基本组成
CU:控制单元
IR:指令寄存器
PC:程序计数器
计算机硬件的主要技术指标
机器字长 CPU一次能处理的数据位数与ALU中的寄存器位数有关
运算速度
MIP(Million Instructions Per Second)
表示每 ...
Database Principles
数据库原理1.数据库概论数据库以及相关概念
数据(data):信息的表现形式和载体。
数据库(database):长期存储在计算机内,有组织的,统一管理的相关数据的集合。
数据库管理系统(DBMS):位于用户与操作系统逐之间的一层数据管理软件,为用户或应用程序提供访问DB的方法,包括DB的建立,查询,更新及各种数据控制。
数据库系统(DBS):采用数据库技术的计算机系统。
数据库技术:研究数据库结构,存储设计管理和使用的一门软件学科。
高级数据库阶段对象数据库技术
面向对象与数据库技术结合的产物
主要特征
可以完整的描述现实数据结构,以及数据之间嵌套递归的联系。
具有封装性和继承性,提高了软件的可重用性
分布式数据库系统
主要特征:
数据物理上分布在不同场地,逻辑上是一个整体 。
每个场地可以执行局部应用,也可以执行全部应用3.。 各地计算机由数据通信网络联系,本地计算机不能完成的任务可以通过通信网络获取其他场地支持。
开放数据库互联技术
用于单个应用程序访问不同的数据库
XML数据库技术
灵活
现代信息集成技术
数据仓库
连及分析处理技术
数据挖掘
数 ...
PHOTO
说走就走(南昌) 去完南昌回来之后几天。想了想,果然还是想记下来当时间胶囊。
回家那一刻我就知道了2024的寒假注定是灰色的,看到最近天气15日阴天,以及温度逐渐下降甚至出现下雪的时候,我心情是复杂的。
上学期因荒废暑假后在学期中越想越痛,于是就发誓要好好利用寒假出去逛一逛,看看不同城市的风景。看到这天气后就有点挫伤。
于是就怀着这越来越渺茫的希望,打了把又一把游戏。
时机已到!那天下午,澡后我感到十分清爽,应该是内啡肽的作用。恰巧温度回升,下午的太阳也很舒服,就是现在!出发!
然而刚到市里就开始下雨了。。。。。。我还没带伞,包里就一个没电的相机和一本书。(《杀死一只知更鸟》英文原著)
好在火车上比较舒服,看看书,打了个盹就到了。刚好看完前半部分。看到了高中时期最喜欢的一段。
我想让你见识一下什么是真正的勇敢,而不要错误地认为一个人手握枪支就是勇敢。勇敢是:当你还未开始就已知道自己会输,可你依然要去做,而且无论如何都要把它坚持到底。你很少能贏,但有时也会。杜博斯太太赢了,用她那仅仅九十八磅重的身躯。按照她的观点,她死得无怨无悔,不欠任何人,也不依赖任何东 ...
《流星之绊》
《流星之绊》 一直想看看短篇小说,想要重新体验一下过去一次性读完一本短篇的感觉(吃快餐…嘘!)。于是就立马想到了东野圭吾和村上春树。
偶然发现原来我还有很多没看过的东野圭吾的作品。其中就有这本《流星之绊》,只消半个夜晚就看毕了,关上ipad,躺在床上,他们三兄妹以及他们的故事在脑海里不断重现。
“我们三人就像流星,毫无目标地飞逝,不知将在何处燃烧殆尽。”
看完后感觉剧情挺一般的,好像这本书少了点东野圭吾的味道了。如果是换做以前的我,大概会觉得这本书挺温暖的,至少就结局来说。也许我真的已经长大了,已经不在相信书里的奇迹了或者说已经不太习惯大团圆结局了。
看的时候就觉得这个剧情很适合拍成电视剧供像我一样百无聊赖的人群观看,第二天一查,没想到真的有日剧,而且好像日剧的受众还更广一点。
流星之绊啊,我一开始其实是理解为像流星一样转瞬即逝的羁绊,后来才知道是一起约定看流星的羁绊。虽然流星易逝,但是观看流星的他们之间的羁绊却被永远铭记。
“
然而最美的流星永远是第一次映入眼帘的那颗“第一次”给人的永恒美是人们对“纯真”最后的忠诚流星雨那年也因狮子座流星雨二更而起无数渴望的眼 ...
docker容器技术
constructing
toBeContinued
简介
docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系。
因此我们可以看到docker可以屏蔽环境差异,也就是说,只要你的程序打包到了docker中,那么无论运行在什么环境下程序的行为都是一致的,程序员再也无法施展表演才华了,不会再有“在我的环境上可以运行”,真正实现“build once, run everywhere”。
概念 docker 中的几个概念:
dockerfile
image
container
dockerfile Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一条条构建镜像所需的指令和说明。感觉就像makefile一样。
image Dock ...
MQTT服务器搭建(mosquitto)
MQTT服务器搭建(mosquitto)0.简介
简介
MQTT也称为”消息代理”(Broker)。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
原理
MQTT协议原理MQTT协议实现方式实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
(1)Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload)
(2)payload,可以理解为消息的内容,是指订阅者具体要使用的内容。
...