单片机通信协议总结
iic通信I2C(IIC,Inter-Integrated Circuit), 两线式 串行总线,由PHILIPS公司开发用于连接微控制器及其外围设备。它是由 数据线SDA和时钟SCL 构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。
IIC是 半双工 通信方式。
总线结构iic通信总线需要拉高,空闲时sda和scl都为高电平,结构如下图:
iic协议状态空闲状态I2C总线总线的SDA和SCL两条信号线同时处于 高电平 时,规定为总线的空闲状态。此时各个器件的输出级场效应管均处在截止状态,即释放总线,由两条信号线各自的上拉电阻把电平拉高。
起始信号与停止信号
起始信号:当SCL为高期间,SDA由高到低的跳变;启动信号是一种电平跳变时序信号,而不是一个电平信号。
停止信号:当SCL为高期间,SDA由低到高的跳变;停止信号也是一种电平跳变时序信号,而不是一个电平信号。
代码:
void IIC_Start(void){ SDA_OUT(); //sda设置为输出模式 IIC_SD ...
stm32时钟系统
STM32 有5个时钟源:HSI、HSE、LSI、LSE、PLL。
HSI是高速内部时钟,RC振荡器,频率为16MHz,精度不高。可以直接作为系统时钟或者用作PLL时钟输入。
HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~26MHz。
LSI是低速内部时钟,RC振荡器,频率为32kHz,提供低功耗时钟。主要供独立看 门狗和自动唤醒单元使用。
LSE是低速外部时钟,接频率为32.768kHz的石英晶体。RTC
PLL为锁相环倍频输出。STM32F4有两个PLL:
主PLL(PLL)由HSE或者HSI提供时钟信号,并具有两个不同的输出时钟。
第一个输出PLLP用于生成高速的系统时钟(最高168MHz)
第二个输出PLLQ用于生成USB OTG FS的时钟(48MHz),随机数发生器的时钟和SDIO时钟。
专用PLL(PLLI2S)用于生成精确时钟,从而在I2S接口实现高品质音频性能。
系统时钟SYSCLK可来源于三个时钟源:
HSI振荡器时钟
HSE振荡 ...
arduinoIDE导入esp32开发板方法
Arduino环境配置首先我们要先去下载Arduino,大家可以去官网下,也可以在Arduino中文社区进行下载,这是中文社区网址https://www.arduino.cn/。
Arduino添加esp32开发板两种方法,arduinoIDE中直接下载,或者使用源码下载:
方法一(arduino中下载):文件>首选项>附加开发板管理器网址 中加入Arduino for esp的地址:
https://dl.espressif.com/dl/package_esp32_index.jsonhttp://arduino.esp8266.com/stable/package_esp8266com_index.json
完成网址添加后就可以在:工具>开发板>开发板管理器 中搜索并下载esp32开发板数据包(版本选1.0.2):
出错记录这里的版本最好要选1.0.2!!!!!!!
我最开始用的最新1.0.6版本,烧录esp32cam的示例无法正常运行,换成1.0.2就好了
方法二(源码下载):先去github下载源码:
https://github.com ...
apache2启动报错排查
环境阿里云ubuntu版本:
LSB Version: core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarchDistributor ID: UbuntuDescription: Ubuntu 20.04.1 LTSRelease: 20.04Codename: focal
apache:
Server version: Apache/2.4.41 (Ubuntu)Server built: 2020-08-12T19:46:17
报错修改apache的配置文件后,重启apache会报错
#service apache2 restartJob for apache2.service failed because the control process exited with error code.See "systemctl status apache2.service" and "journalctl -xe" for details.
这个时候 ...
hexo butterfly视频自适应
想在文章中放入视频 结果发现放进去是这样的:(在.md文件里放视频的方法:https://callmelp.online/2021/05/19/markdown/#%E8%A7%86%E9%A2%91)
youtube:
<div> <iframe width="560" height="315" src="https://www.youtube.com/embed/FuKEpOhiVPg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></div>
bilibili:
<div> <ifra ...
Markdown使用教程
markdown的详细使用方法
目录
Markdown标题
1. =和-标记一二级标题
2. 使用 # 号标题
Markdown分割线
Markdown字体
删除线
下划线
脚注
表情(Github版本)
Markdown段落
MarkDown 目录跳转
Markdown列表
无序列表
有序列表
列表嵌套
区块
复选框列表(Github版本)
Markdown代码
代码区块
Markdown链接
高级链接
用户@提醒
Markdown图片和视频
视频
Markdown 表格
对齐方式
Markdown 高级技巧
支持的 HTML 元素
转义
导出pdf分页
GitHub-badge
静态badge
动态实时更新badge
Markdown标题1. =和-标记一二级标题一级标题==============二级标题--------------
效果(示例添加区块以区分):
一级标题二级标题
2. 使用 # 号标题使用 # 号可表示 1-6 级标题,一级标题对应一个 # 号,二级标题对应两个 # 号,以此类推。
# 一级标题 ...
域名解析教程
域名解析教程访问一个网站输入域名,比如www.baidu.com就可以访问到百度。但是我们在浏览器输入www.baidu.com之后是怎么访问到百度的网页的呢?百度的网页存在服务器里,但是我们并不知道他的服务器在哪?
其实就是通过DNS解析到的服务器IP,找到服务器IP之后,我们访问www.baidu.com这个访问请求,就会发给百度的服务器,百度的服务器接收到请求,给你返回了对应的内容,然后我们浏览器收到了内容就给你显示了出来,我们就看到了百度的网页。
我们要做的域名解析就是要把域名和IP的对应关系告诉DNS,DNS记下来后有访客访问就返回给他了。不同服务商解析域名的方法大差不差,这里使用腾讯云进行解析讲解
目录
所需材料
域名解析
主机记录
记录类型
SSL证书
腾讯云SSL证书
所需材料
已实名和备案的域名(我们解析的ip地址在国内,所以域名必须通过备案)
一台公网ip服务器
域名解析进如腾讯云的域名控制台,点击域名后面的解析。
进入dnspod(腾讯云的是这个,不同服务商的dns解析不一样)
接下来讲一下解析记录里参数都是干啥的
主机记录主机记录相当于域 ...
Octave简明教程
吴恩达的机器学习课程的作业可以使用Matlab或者octave,这里记录一下octave的基本操作。
Contents
符号
矩阵
矩阵初始化
特殊矩阵初始化
矩阵索引
矩阵变化
重新赋值
添加到新行/列
矩阵向量化
矩阵计算
矩阵相加减
矩阵相乘除
矩阵运算
内建函数
画图
语法
符号
符号
解释
%
注释
~=
不等于
;
结束符
>
大于
<
小于
=
等于
+
加
-
减
*
乘
/
除
‘
转置
> , < , =这些符号可以应用到矩阵中,可以将矩阵中的每一个元素和符号后的数字进行比较,最终判断成立返回1, 判断错误返回0.
示例:
>> 1+1ans = 2>> 1*8ans = 8>> a = 3a = 3>> a~=1ans = 1>> a~=3ans = 0>> a = [11 2 3; 1 21 3 ; 1 2 32]a = 11 2 ...
node.js web服务器搭建
使用nodejs搭建文件目录结构的web服务器,以及node forever模块的使用
nodejs的安装和使用以及npm的使用方法自己查
目录
目录
web服务器搭建
安装对应库
获得https的ssl证书
文件目录
运行
serve.js代码(web根目录)
forever说明
forever安装和使用
安装
使用
web服务器搭建安装对应库npm install expressnpm install serve-index
获得https的ssl证书购买域后进行实名认证,通过后即可下载
文件目录
cert:存放ssl证书node_modules:nodejs的库public:web页面的目录server.js:web服务器代码
运行sudo forever start server.js
forever可以不占用终端在后台运行
停止:
sudo forever stop server.js
说明:forever需要用npm下载
如果想临时使用或者查看log,可以使用node运行:
sudo node server.js
...