- 博客(9)
- 收藏
- 关注
原创 stm32f103c8t6——学习日记之超声波测距HC-SR04
输入信号输入后,经过输入滤波器滤波后进去边沿检测器,在这个边沿检测器我们可以设置为低电平检测或者高电平检测,接下来当检测到设置好的电平后,TI1FP1信号就会通过预分频器传递到捕获寄存器1,捕获寄存器便立刻记录下此刻的计数值。我们发现,每一个输入通道只有一个捕获寄存器,当我们记录下上升沿时刻的值后,下降沿时刻的值就不能保存到同一个寄存器中,否则上一个数据会丢失,但是你发现通道一从边沿检测器出来后兵分两路,一路接到通道2的预分频器上后跟通道2的捕获寄存器相连。这里通道1和通道2可以相互借用对方的寄存器。
2025-12-06 00:17:51
670
原创 stm32f103c8t6——学习日记之PWM(HAL库)
PWM(Pulse Width Modulation)是一种通过调节脉冲宽度来控制信号平均功率的技术。
2025-12-05 17:45:22
994
原创 stm32f103c8t6——学习日记之串口通信(HAL库)
打开串口一设置为异步通信模式(Asynchronous),下面的配置中波特率可以根据自己的需要设置,我们常把他们设置为115200或者9600,这里由于个人需要我设置为9600。如果能有一个专门负责数据搬运的模块来分担这项工作,就能有效解决CPU频繁中断的问题——这正是DMA(直接内存访问)技术的作用所在。通过串口空闲中断机制,当RX数据线上停止数据传输(即串口状态由忙碌转为空闲)时,系统即可判定当前数据帧接收完毕,此时便可进行数据分析处理,cubemx也已经封装好对应的函数了,接收函数将。
2025-12-01 23:36:49
1170
原创 stm32f103c8t6——学习日记之0.96寸oled(iic 标准库+Hal 库)
IIC通信协议摘要: IIC采用两根通信线(SCL时钟线和SDA数据线)实现半双工同步通信,支持一主多从和多主多从模式。硬件上需配置开漏输出模式并添加4.7kΩ上拉电阻,防止电源短路。软件实现包括:1)起始信号(SCL高时SDA由高变低);2)终止信号(SCL高时SDA由低变高);3)字节传输(SCL低时准备数据,高时采样);4)应答机制。OLED驱动需按照特定时序发送初始化指令,包括设备地址、命令/数据选择位等。通过封装基本时序函数(如I2C_Start、Send_Byte等)实现通信协议,最后按照厂家提
2025-11-28 15:23:32
943
原创 C语言入门篇——5、C语言基础知识
依旧报错,出现了LINK错误,这是因为编译器是对源文件进行独立编译的,编译main.c的时候,编译器不知道标识符print具体是什么?我们对这个预处理指令已经不陌生了,通过#include 引入头文件我们可以将头文件中定义的函数放在我们的源文件中使用,但他不会改动我们源函数的代码,而是另存为中间文件或者直接输入编译器。头文件保护:先判断头文件中的函数声明是否被定义,如果没有被定义就保留中间的函数声明代码,如果有被定义则删除,这样子我们就不用担心不小心引入多次头文件了!} Student;
2025-11-27 01:03:05
783
原创 C语言入门篇——4、C语言基础知识(指针)
要确定数据在内存中的存储位置,关键在于获取数据的首地址及其占用空间大小。通过这两个要素,我们就能准确定位数据。那么如何获取这些信息呢?这正是我们将要介绍的取地址运算符&的作用。作用:获取数据对象首地址以及所需存储空间的大小这个类型实际上就是指针类型。
2025-11-26 01:07:05
869
原创 C语言入门篇 ——2、C语言基础知识
实际上,C++可以看作是C语言的升级版,在设计时就考虑了兼容性问题,C语言的大部分函数和代码都能在C++中直接使用。为给项目命名,自己选一个名字(比如你这个项目是测试项目,你可以命名为"TEST"这种帮助你识别项目功能的名字,这里作为案例,我们命名为TEST1)。比如100 、3.14 会直接被认作整形、浮点型,如果像10000000更长的数据,它会自动的往unsigned int 及更高级看,找到满足这个长度的类 型,这个过程全自动,所以说字面常量不需要声明。但我们暂时不考虑这个函数的安全性。
2025-11-24 00:18:27
1033
原创 从零学习C语言篇——1、Visual Studio开发环境搭建
1、点击蓝色链接进入--->,进入后就是这个界面,选择社区版Community下载,这里下载的是exe可执行文件,不大约4.3M。,专业版、企业版需要密钥才能使用下载速度会有点久,耐心等待下载完成。
2025-11-23 01:38:37
496
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅