![](https://img-blog.csdnimg.cn/63ed3c9689d04ea4ba61879e5bd95211.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
STM32
文章平均质量分 83
意法半导体32-bit单片机STM32学习笔记
落叶随峰
菜鸡大学生一枚,感兴趣方向:C++,嵌入式,PCB设计,目标检测,视频语义分割等。
展开
-
STM32学习笔记(7) 超声波HSR04模块详解
一 超声波硬件详解硬件参数参数说明产品名称HC-SR04超声波模块工作电压DC 5V工作电流15mA工作频率40KHz射程范围2cm — 400cm测量角度<= 15度输入触发信号10us的TTL脉冲输出回响信号输出TTL电平信号,与射程成正比二 工作原理采用(IO触发测距,至少给10us的高电平)模块自动发送8个40kHz的方波,自动检测是否有信号返回有信号返回时,通过IO输出一高电平、高电平持原创 2022-01-20 17:43:24 · 3072 阅读 · 2 评论 -
STM32学习笔记(6) 串口通信数据包解析
串口的数据解析代码 /** * 函数名:UART1_Handler() * 功能: 串口1的中断服务函数 * 入口参数:无 * 引脚: 无 * USART1_RX_STA:串口一的接收状态标志位 * USART1_BUFF[USART1_Length]:缓冲区(存储数据),串口长度 */u16 USART1_RX_STA;u16 USART1_BUFF[USART1_Length];void USART1_IRQHandler(){ u8 R原创 2022-01-18 15:48:22 · 3822 阅读 · 0 评论 -
STM32学习笔记(5) 串口通讯-接收与发送
串口通讯一 通信的基本概念串口并行与串行数电课讲过,并行速度快但占用的门电路多,耗费空间串行速度慢但节约空间数据通信方向全双工:TX,RX同时收发数据半双工:不能同时收发数据,可分时收发数据单工:任何时刻都只能往某一个固定的方向传输数据数据同步方式同步异步通信速率比特率:每秒钟传输的二进制位数,单位(bit/s)波特率:每秒中传输的码元个数一个码元就是一个脉冲信号,一个脉冲信号有可能携带1bit数据,也有可能携带2bit数据、4bit数据原创 2022-01-17 19:36:16 · 8119 阅读 · 0 评论 -
STM32学习笔记(4) 高级定时器-两路互补的PWM输出(带死区和刹车控制)
目录1.实验目的2.实验效果3.理论部分3.1时钟源3.2时基单元3.3输入捕获4.程序流程4.1GPIO初始化结构体4.2时基初始化结构体4.3输出比较结构体4.4刹车和死区结构体的初始化5.程序源码1.实验目的使用高级定时器,输出两路互补的PWM输出,需要有带死区和不带死区两种情况2.实验效果图1:不带死区的两路互补的PWM输出图2 :带死区的两路互补的PWM输出3.理论部分3.1时钟源内部时钟(基本定时原创 2022-01-11 20:43:03 · 15536 阅读 · 3 评论 -
STM32学习笔记(3) TIM基本定时器
目录1.基本定时器2.基本定时器TIM的工作原理范例:定时1ms的计算3.程序流程:4.代码示例前言:由于最近有很多烦心事,所以距上次写博客也有两周了,这周把定时器写完,有时间就做一个双击,多击,长按的状态机1.基本定时器功能:定时,无PWM● 计数器寄存器(TIMx_CNT)● 预分频寄存器(TIMx_PSC)● 自动重装载寄存器(TIMx_ARR)2.基本定时器TIM的工作原理来自内部时钟源的CK_PSC(频率=72MHz,72*10^原创 2021-12-10 20:10:39 · 7347 阅读 · 2 评论 -
STM32学习笔记(2) 使用外部中断控制按键
目录中断概述M3内核中断源外部中断EXTI概述输入线(以EXTI0为例)程序流程1.初始化要连接到EXTI的GPIO2.初始化EXTI用于产生的中断/事件3.初始化NVIC,用于处理中断4.编写中断服务函数5.main函数代码示例:外部中断控制按键中断概述中断:打断CPU正常程序运行,转去执行中断服务函数的内容,然后再回来执行原来的程序NVIC:嵌套向量中断控制器,属于内核外设,管理怎与中断相关的功能 bit7 bi原创 2021-11-29 21:43:24 · 4033 阅读 · 0 评论 -
STM32学习笔记(1) GPIO初始化及点亮LED
目录一、led.h头文件分析二、Led_Init()函数分析一、led.h头文件分析#ifndef__LED_H#define__LED_H#include"sys.h"#defineLED0PAout(8)//PA8#defineLED1PDout(2)//PD2voidLED_Init(void);//初始化#endif问:ifndef,endif有什么用?在这一段代码中,假设同时有A.h和B.h同时包含了这个头文件,在编译器编译A时...原创 2021-11-28 13:43:36 · 3280 阅读 · 1 评论