
STM32
文章平均质量分 50
STM32
执念、坚持
学习过程中,求职入行前遇到的问题;入职后,需求的解决方案探讨,都可以与我私信
展开
-
温湿度LCD显示并上传服务器
DAT – PB7PB7既作为输入,也作为输出,则不能直接在CubeMX里配置,需要自己写代码引脚封装具体代码如下uint8_t i;for(i = 0;i < 10;} } // 初始化GPIO0 };DHT_HIGHT;DHT_LOW;DHT_HIGHT;while(!DHT_VALUE);int i;//轮int j;//每一轮读多少次char tmp;char flag;for(i = 0;i < 5;原创 2023-04-11 21:18:04 · 267 阅读 · 0 评论 -
STM32之 SPI
W25Q128 是华邦公司推出的一款 SPI 接口的 NOR Flash 芯片,其存储空间为 128 Mbit,相当于16M 字节。Flash 是常用的用于储存数据的半导体器件,它具有容量大,可重复擦写、按“扇区/块”擦除、掉电后数据可继续保存的特性。Flash 是有一个物理特性:只能写 0 ,不能写 1 ,写 1 靠擦除。原创 2023-04-11 16:17:43 · 1484 阅读 · 0 评论 -
STM32 实现 C51 IIC实验
返回值:HAL_StatusTypeDef,HAL状态(OK,busy,ERROR,TIMEOUT)参数二:uint16_t DevAddress,目标器件的地址,七位地址必须左对齐。参数四:uint16_t MemAddSize,目标器件内部寄存器地址数据长度。参数三:uint16_t MemAddress,目标器件的目标寄存器地址。参数五:uint8_t *pData,待写的数据首地址。参数六:uint16_t Size,待写的数据长度。参数七:uint32_t Timeout,超时时间。原创 2023-04-11 12:29:17 · 200 阅读 · 0 评论 -
使用ADC读取烟雾传感器的值
【代码】使用ADC读取烟雾传感器的值。原创 2023-04-11 11:37:13 · 235 阅读 · 0 评论 -
ADC介绍
全称:Analog-to-Digital Converter,也称模拟/数字转换器。原创 2023-04-11 00:00:43 · 5449 阅读 · 0 评论 -
DMA案例 外设到内存搬运
返回值:HAL_StatusTypeDef,HAL状态(OK,busy,ERROR,TIMEOUT)返回值:HAL_StatusTypeDef,HAL状态(OK,busy,ERROR,TIMEOUT)参数一:UART_HandleTypeDef *huart 串口句柄。使用DMA的方式将串口接收缓存寄存器的值搬运到内存中,同时闪烁LED1。利用串口空闲中断,可以用如下流程实现DMA控制的任意长数据接收;4. 一帧数据接收完毕,串口暂时空闲,触发串口空闲中断;参数一:HANDLE, 串口句柄。原创 2023-04-10 17:59:27 · 374 阅读 · 0 评论 -
DMA案例 内存到外设搬运
返回值:HAL_StatusTypeDef,HAL状态(OK,busy,ERROR,TIMEOUT)参数一:UART_HandleTypeDef *huart 串口句柄。使用DMA的方式将内存数据搬运到串口1发送寄存器,同时闪烁LED1。参数二:uint8_t *pData 待发送数据首地址。参数三:uint16_t Size 待发送数据返回值。原创 2023-04-10 00:39:33 · 186 阅读 · 0 评论 -
DMA 案例 内存到内存搬运
返回值: HAL_StatusTypeDef,HAL状态(OK,busy,ERROR,TIMEOUT)使用DMA的方式将数组A的内容复制到数组B中,搬运完之后将数组B的内容打印到屏幕。参数二: FLAG,数据传输标志。参数一:DMA_HandleTypeDef *hdma DMA句柄。参数四:uint32_t DataLength 数据传输长度。参数三: uint32_t DstAddress 目标内存地址。参数二:uint32_t SrcAddress 源内存地址。原创 2023-04-10 00:08:19 · 368 阅读 · 0 评论 -
DMA介绍
DMA(Direct Memory Access,直接存储器访问)提供外设与内存、存储器和存储器、外设与外设之间的高速数据传输使用。允许不同速度的硬件装置来沟通,而不需要依赖CPU,在这个时间中,CPU对于内存的工作来说就无法使用。简单描述:DMA就是数据的搬运工。原创 2023-04-09 22:22:33 · 5136 阅读 · 0 评论 -
窗口看门狗案例
开启窗口看门狗,计数器值设置为 0X7F ,窗口值设置为 0X5F ,预分频系数为 8。程序启动时点亮 LED1 ,300ms 后熄灭。在提前唤醒中断服务函数进行喂狗,同时翻转 LED2 状态。原创 2023-04-09 21:36:37 · 128 阅读 · 0 评论 -
窗口看门狗 WWDG
什么是窗口看门狗?窗口看门狗用于监测单片机程序运行时效是否精准,主要检测软件异常,一般用于需要精准检测程序运行时间的场合。窗口看门狗的本质是一个能产生系统复位信号和提前唤醒中断的6位计数器。当递减计数器值从0x40减到0x3F时复位(即T6位跳变到0)计数器的值大于W[6:0]值时喂狗会复位。当递减计数器等于 0x40 时可能产生提前唤醒中断(EWI)。在窗口期内重装载计数器的值,防止复位,也就是所谓的喂狗。原创 2023-04-09 18:17:28 · 182 阅读 · 0 评论 -
独立看门狗案例
开启独立看门狗,溢出时间为1秒,使用按键1进行喂狗。原创 2023-04-09 17:46:43 · 132 阅读 · 0 评论 -
独立看门狗 IWDG
在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统陷入停滞转态,发生不可预料的后果,所以出于对单片机运行转态进行实时监测的考虑,便产生一种专门用于监测单片机程序的运行状态的模块或者芯片,俗称“看门狗”(watchdog)。原创 2023-04-09 17:06:14 · 83 阅读 · 0 评论 -
esp8266 当路由和服务器控制
【代码】esp8266 当路由和服务器控制。原创 2023-04-09 14:07:10 · 166 阅读 · 0 评论 -
串口项目Wi-Fi控制灯
通过ESP8266模块,实现手机控制wifi插座/风扇/灯。ESP8266模块CH340杜邦线。原创 2023-04-09 13:32:27 · 124 阅读 · 0 评论 -
串口项目 蓝牙控制灯
通过蓝牙模块,实现手机控制蓝牙插座/风扇/灯。控制 IO 口的输出。采用蓝牙的透传功能;原创 2023-04-07 22:47:03 · 90 阅读 · 0 评论 -
串口实验(中断)
通过中断的方法接受串口工具发送的字符串,并将其发送回串口工具。前面的配置步骤和非中断一样。原创 2023-04-07 21:04:06 · 215 阅读 · 0 评论 -
串口实验(非中断)
从魔术棒打开,这个勾勾一定要打上,否则 printf 无法重映射!接受串口工具发送的字符串,并将其发送回串口工具。一定要记得交叉接线!原创 2023-04-07 17:50:11 · 114 阅读 · 0 评论 -
STM32之串口
串口发送数据,使用超时管理机制串口接收数据,使用超时管理机制串口中断模式发送串口中断模式接收HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef * huart , // 形参 1 uint8_t * pData , // 形参 2 uint16_t Size , // 形参 3 uint32_t Timeout // 形参 4)作用:以阻塞的方式发送指定字节的数据形参 1 :UART_HandleTypeDef 结构体类型指针变量。原创 2023-04-07 11:49:26 · 167 阅读 · 0 评论 -
感应开关盖垃圾桶项目
sg90舵机介绍PWM波的频率不能太高,大约50HZ,即周期=1/频率=1/50=0.02s,20ms左右。确定周期/频率如果周期为20ms,则 PSC=7199,ARR=199角度控制0.5ms-------------0度;2.5% 对应函数中CCRx为51.0ms------------45度;5.0% 对应函数中CCRx为101.5ms------------90度;7.5% 对应函数中CCRx为152.0ms-----------135度;10.0% 对应函数中CCRx为20。原创 2023-04-06 16:45:56 · 225 阅读 · 0 评论 -
PWM实验
假如频率为 2kHz ,则:PSC=71,ARR=499。首先要知道,LED1连接到哪个定时器的哪一路?需求:使用PWM点亮LED1实现呼吸灯效果。LED灯为什么可以越来越亮,越来越暗?答案:这是由不同的占空比决定的。原创 2023-04-05 00:18:26 · 166 阅读 · 0 评论 -
PWM 概述
高级定时器(TIM1):7路通用定时器(TIM2 ~ TIM4):各4路PWM模式1:在向上计数时,一旦 CNT < CCRx 时输出有效电平,否则为无效电平;在向下计数时,一旦 CNT > CCRx 时输出无效电平;否则为有效电平PWM模式2:在向上计数时,一旦 CNT < CCRx 时输出无效电平,否则为有效电平;在向下计数时,一旦CNT > CCRx 时输出为有效电平,否则为无效电平。原创 2023-04-05 00:18:05 · 199 阅读 · 0 评论 -
定时器中断实验
需求:使用定时器中断方法,每500ms翻转一次LED1灯状态。5. 重写更新中断回调函数。原创 2023-04-04 21:21:03 · 2453 阅读 · 0 评论 -
定时器Timer
软件定时缺点:不精确、占用CPU资源_nop_();i = 4;j = 129;k = 119;do {do {16位向上、向下、向上/向下自动装载计数器器(TIMx_CNT)。16位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率系数为 1 ~ 65536 之间的任意数值4个独立通道(TIMx_CH1~4),这些通道可以用来作为:输入捕获输出比较PWM生成(边缘或中间对齐模式)单脉冲模式输出。原创 2023-04-04 20:53:47 · 124 阅读 · 0 评论 -
电动车报警器
继电器工作原理单片机供电VCC GND接单片机,VCC需要接3.3V,5V不行!最大负载电路交流250V/10A,直流30V/10A引脚 IN 接收到低电平时,开关闭合。导通电由于在震动的时候 PB8 会被拉低,所以继电器的 IN 接到 PB8无需额外再修改代码。433M无线发射接收模块介绍433M供电VCC GND 接单片机的 VCC GND接收到信号,接收模块对应针脚输出高电平有D0 D1 D2 D3,对应遥控器的ABCD编程实现需求:按下遥控器A按键,LED1亮1秒;原创 2023-04-04 18:36:36 · 164 阅读 · 0 评论 -
中断法之按键点亮LED灯
【代码】中断法之按键点亮LED灯。原创 2023-04-05 21:16:19 · 110 阅读 · 0 评论 -
中断和事件
什么是中断?中断是指计算机运行过程中,出现某些意外情况需要主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。什么是EXTI外部中断/事件控制器(EXTI)管理了控制器的 23 个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。EXTI 可以实现对每个中断/事件线进行单独配置,可以单独配置为中断或者事件,以及触发事件的属性。EXTI 可分为两大部分功能,一个是产生中断,另一个是产生事件。原创 2023-04-04 15:38:42 · 593 阅读 · 0 评论 -
复位和时钟控制(RCC)
时钟打开,对应的设备才会工作。原创 2023-04-04 14:58:23 · 150 阅读 · 0 评论 -
如何点亮一颗LED灯
将PB8或PB9拉低,就可以实现将对应的LED灯点亮。下面实现一个按键点亮LED灯。编程点亮灯,常见的库函数。原创 2023-04-04 12:20:51 · 259 阅读 · 0 评论 -
通用输入输出端口GPIO
GPIO是通用输入输出的端口的简称,简单来说就是STM32可控制的引脚STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制及数据采集的功能。简单来说,我们可以控制GPIO引脚的电平变化,达到我们的各种目的。原创 2023-04-04 10:46:32 · 177 阅读 · 0 评论 -
标准库与HAL库区别
标准库与HAL库区别寄存器寄存器众多,需要经常翻阅芯片手册,费时费力;更大灵活性,可以随心所欲达到自己的目的;深入理解单片机的运行原理,知其然更知其所以然。标准库将寄存器底层操作都封装起来,提供一整套接口(API)供开发者调用每款芯片都编写了一份库文件,也就是工程文件里stm32F1xx…之类的;配置结构体变量成员就可以修改外设的配置寄存器,从而选择不同的功能;大大降低单片机开发难度,但是在不同芯片间不方便移植。HAL库ST公司目前主力推的开发方式,新的芯片已经不原创 2023-04-04 10:42:00 · 183 阅读 · 0 评论 -
初识STM32单片机
单片机(Single-Chip Microcomputer)是一种集成电路芯片,把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。原创 2023-04-04 10:26:57 · 64 阅读 · 0 评论 -
使用STM32CubeMX生成工程文件
点击 Open Project 即可调用 Keil5 打开自动生成的工程文件。点击「ACCESS TO MCU SELECTOR」;左上角搜索对应的芯片,并在右侧双击对应的芯片;点击芯片对应的引脚,并进行配置;原创 2023-04-04 00:05:00 · 283 阅读 · 0 评论 -
STM32 开发环境安装 Keil5 + STM32CubeMX
使用 Keil4 写 STM32 代码其实也是可以,但需要很复杂的配置,不建议新手操作。比较推荐 Keil5 编写 STM32 ,只需要一些简单的设置就可以上手,对新手友好。如何下载程序到开发板,使用的是 ST-Link。安装路径一定不要有中文或空格!原创 2023-04-03 23:05:11 · 1177 阅读 · 0 评论