放学校门口见
码龄13年
关注
提问 私信
  • 博客:153,774
    社区:8
    动态:13
    153,795
    总访问量
  • 46
    原创
  • 1,306,798
    排名
  • 2,207
    粉丝
  • 93
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:陕西省
  • 加入CSDN时间: 2012-01-05
博客简介:

guanxiaozhi的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    5
    当前总分
    1,217
    当月
    10
个人成就
  • 获得185次点赞
  • 内容获得157次评论
  • 获得845次收藏
  • 代码片获得1,433次分享
创作历程
  • 2篇
    2024年
  • 32篇
    2023年
  • 2篇
    2022年
  • 4篇
    2021年
  • 6篇
    2020年
成就勋章
TA的专栏
  • PLC
    1篇
  • stm32
    35篇
  • C++
    1篇
  • C#
    1篇
  • ROS
    2篇
  • 树莓派
    2篇
  • HarmonyOS
    1篇
  • Linux
    1篇
  • QT
    2篇
TA的社区
  • 宥小稚
    2 成员 6 内容
    创建者
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

034 - STM32学习笔记 - TIM定时器(三) - 高级定时器2

当捕获通道TIx上出现上升沿时,发生第一次捕获,计数器CNT的值会被锁存到捕获寄存器CCR中,而且还会进入捕获中断,再中断服务子程序中记录一次捕获,并且把捕获寄存器中的值读取到value1中,当出现第二次上升沿时,发生第二次捕获,计数器CNT的值再次被锁存到捕获寄存器CCR中,并再次进入捕获中断,再捕获中断中,读取捕获寄存器的值到value3中,并清除捕获记录标志,如此就可以利用value3和value1的擦之计算信号周期(频率)。在边沿对齐模式下,计数器CNT只工作在一种模式,递增或者递减模式。
原创
发布博客 2024.01.11 ·
1598 阅读 ·
18 点赞 ·
0 评论 ·
28 收藏

033 - STM32学习笔记 - TIM定时器(二) - 高级定时器

输入滤波是为了滤除输入信号的高频干扰,即为重新采样。采样时,采样的频率必须大于等于两倍的输入信号,例如,输入信号为1M时,可能存在高频的信号干扰,为了滤除干扰,就需要将采样频率设置为2M,这样就可以把高于2M的高频干扰过滤掉,同时又能保证有效信号的采集。捕获通道和输入通道的区别在于,输入通道用于接收输入信号,而捕获通道则用来捕获输入信号的通道,一个输入通道的信号可以同时经由两个捕获通道输入,例如,输入通道TI1的信号经过滤波边沿检测器后,TI1FP1和TI1FP2可以输入到捕获通道IC1和IC2。
原创
发布博客 2024.01.05 ·
1736 阅读 ·
21 点赞 ·
0 评论 ·
23 收藏

032 - STM32学习笔记 - TIM定时器(一) - 定时器基本知识

在上图中,绿框中是对定时器的图标解释,黑框带阴影方框中,方框内容一般为寄存器名称,比如上面的自动重载寄存器(TIMx_ARR)和PSC(TIMx_PSC)预分频寄存器,方框加阴影效果主要是为了突出表示该寄存后面还有一个寄存器,只是这个寄存器我们无法进行操作,这里我们称之为影子寄存器,而上面我们可以操作的寄存器我们称之为源寄存器。向TIMx_PSC寄存器写入新值时,并不会马上更新CK_CNT的输出频率,需要等到更新事件发生时,把TIMx_PSC寄存器值更新到影子寄存器中,才能产生效果。
原创
发布博客 2023.12.23 ·
1689 阅读 ·
24 点赞 ·
0 评论 ·
20 收藏

031 - STM32学习笔记 - ADC(五) 三重ADC交替模式采集

这里以三重转换为里,三重交替采集模式顾名思义,就是通过三个ADC交叉对同一通道进行采集,假如我们使用三重模式对电位器进行模拟量采集,当ADC1在采集完成后进行数据转换时,ADC2接替进行采集,ADC2采集完成后惊醒数据转换时,ADC3再接替进行采集,依次向后类推,因此三重模式就是利用通道转换的时间差来进行采集,尽量减少转换时间对采集频率的影响以提高转换速度。如果需要提高转换速度,可以采用双重或者三重ADC,同时采集多个不同通道的数据,或者可以使用多个ADC交叉采集同一个通道的数据,这样可以提高速度。
原创
发布博客 2023.12.20 ·
1109 阅读 ·
2 点赞 ·
0 评论 ·
9 收藏

030 - STM32学习笔记 - ADC(四) 独立模式多通道DMA采集

中断模式和DMA模式进行单通道模拟量采集,这节继续学习独立模式多通道DMA采集,使用到的引脚有之前使用的PC3(电位器),PA4(光敏电阻)、PA6(悬空,可通过杜邦线接3V3或者GND进行测试)。对于ADC来说,我们使用的是一个ADC,即ADC1,所以关于ADC Common的初始化部分不需要进行修改。这里代码就不网上贴了,不清楚了可以翻看上一节的内容。这里我们在bsp_adc.c中定义一个数组,用来存放三个通道采集到的数据,再在main函数中用extern调用,再定义用来存放转换后的数组。
原创
发布博客 2023.11.30 ·
734 阅读 ·
1 点赞 ·
5 评论 ·
3 收藏

029 - STM32学习笔记 - ADC(三) 独立模式单通道DMA采集

2、DMA模式下,ADC会根据用户设置的采集频率对模拟量进行采集,单次采集完成后,会产生一次DMA请求,数据则会通过DMA通道送至指定的内存地址(变量)中,并不影响下次数据采集,若用户对此次采集的数据未作处理,则会被下次采集的数据覆盖。相比之下,DMA不需要中断CPU的采集工作,不需要中断服务函数,并且传输速度极快。1、中断模式下,当发生一次采集后,会触发一次中断,此时需要用户处理数据(中断),当数据(中断)处理完成后,对中断标志位置位后,才会继续下一次采集,否则不会继续采集。
原创
发布博客 2023.11.28 ·
561 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

028 - STM32学习笔记 - ADC(二) 独立模式单通道中断采集

滑动变阻器动触点连接到STM32的ADC通道引脚(GPIOC_3),固定触点一边接0V,一边接3.3V,因此旋转滑动变阻器调节旋钮时,动触点的电压会在0~3.3V之间变化。:ADC时钟分频系数选择,ADC时钟是由PCLK2分频而来,分频系数决定ADC时钟频率,可选的分频系数位2、4、6和8,在之前也学习过ADC的最大时钟配置为36MHz。:该成员主要用于配置ADC是否使用扫描,可选参数为ENABLE和DISABLE,如果只用到一个通道,配置为DISABLE,如果时多个通道,则选择ENABLE。
原创
发布博客 2023.11.22 ·
1404 阅读 ·
2 点赞 ·
3 评论 ·
9 收藏

027 - STM32学习笔记 - ADC(一) 初识

ADC指的是Analog to Digital Converter(模数转换器),即将连续变化的模拟信号转换为数字信号,常见的模拟信号有例如:压力、温度、声音等,我们可以将诸如上面说的集中通过模数转换器将其转换为更容易存储的数字信息。
原创
发布博客 2023.11.13 ·
553 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

026 - STM32学习笔记 - 液晶屏控制(三) - DMA2D快速绘制矩形、直线

用于配置行偏移,行偏移会被添加到各行的结尾,用于确定下一行的起始地址,如下,绿色表示要显示的像素列,黄色表示行偏移,,假如左边显示的是一条竖线,竖线的宽度为1像素,所以行偏移的值为7-1=6,右边的线宽为2像素,行偏移的值为7-2=5,这样可以总结。用于配置DMA2D的输出颜色值,如果DMA2D工作模式设置为寄存器到存储器模式,则此颜色值作为数据源,会被DA2D复制到显存空间,目标空间就会被填入这一种颜色,每个通道的参数取值范围,请参照结构体说明中的注释内容。效果图:晚上拍的照,颜色显示不是很明显。
原创
发布博客 2023.10.05 ·
966 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

025 - STM32学习笔记 - 液晶屏控制(二) - 代码实现

本来想像之前做SDRAM的时候一样,把所有引脚都做个表列出来,但是上次引脚太多了,列个表太痛苦了。这次就不列表格了,直接把宏定义贴出来各位看一下吧。/* 红色数据线 *///R0 - PH2//R1 - PH3//R2 - PH8//R3 - PB0//R5 - A12//R6 - PB1//R7 - PG6/* 绿色数据线 *///G0 - PE5//G1 - PE6//G5 - PI0//G6 - PC7//G7 - PI2/* 蓝色数据线 *///B0 - PE4。
原创
发布博客 2023.09.29 ·
574 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

024 - STM32学习笔记 - 液晶屏控制(一) - LTDC与DMA2D初始

图中的CLUT表示颜色查找表,是一种间接的颜色表示方式,使用一个256*32位的空间缓存256种颜色,颜色格式是ARGB8888或RGB888,实际图像只是用这256种颜色,图像的每个像素点使用8位数据表示,但是该数据不是直接的RGB颜色,而是指向颜色查找表的地址便宜,可以理解为像素点应该显示的颜色对应的是颜色查找表里面的颜色,在图像大小不变的情况下,利用颜色查找表i可以扩展颜色显示的能力,特点就是可以用8位的数据表示一个24或者32位的颜色,整个图像种的颜色种类受限于颜色查找表中的256种。
原创
发布博客 2023.09.08 ·
2639 阅读 ·
3 点赞 ·
0 评论 ·
16 收藏

023 - STM32学习笔记 - 扩展外部SDRAM(二) - 扩展外部SDRAM实验

这次使用到的GPIO相当多,这里我们把FMC SDRAM相关的GPIO配置都宏定义到“bsp_sdram.h”中,相关的配置步骤参考之前的工程配置。这里我把我配置好的贴出来,如果我们使用的开发板不一致,请参考自己开发板的硬件原理图。/* A行列地址信号线 *//*BA0 地址线 PG4*//*BA1 地址线 PG5 *//*DQ 数据信号线*//*DQ0 数据线 PD14 *//*DQ1 数据线*//*DQ2 数据线*//*DQ3 数据线*//*DQ4 数据线*//*DQ5 数据线*/
原创
发布博客 2023.08.30 ·
931 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

022 - STM32学习笔记 - 扩展外部SDRAM(一) - 初识SDRAM和FMC

当行有效命令确定后,紧接着就需要进行列寻址,读命令与写命令的时序基本一致,通过共用地址线A[11:0]发送列地址,同时WE#引脚表示读/写方向,WE#为低电平时,表示写,高电平时表示读。同时读写数据时,用DQM#线来确定有效的数据线。在实际对SDRAM的读写中,我们一般不会对存储器一个一个存储单元的去读写,这样有耗时又耗力,需要不停的发送列地址与读写命令,虽然读写延迟相同可以让数据的传输在I/O端是连续的,但是会消耗大量的内存/控制资源,而且数据在传输过程中,也无法接收新的命令,因此效率比较低下。
原创
发布博客 2023.08.11 ·
3490 阅读 ·
6 点赞 ·
0 评论 ·
29 收藏

021 - STM32学习笔记 - Fatfs文件系统(三) - 细化与总结

上节内容中,初步实现了FatFs文件系统的移植,并且实现了设备的挂载、文件打开/关闭与读写功能,这里对上节遗留的一些问题进行总结,并且继续完善文件系统的一些操作。
原创
发布博客 2023.08.01 ·
1548 阅读 ·
2 点赞 ·
0 评论 ·
15 收藏

020 - STM32学习笔记 - Fatfs文件系统(二) - 移植与测试

在FatFs文件系统的源码中,已经存在了3个设备编号,分别是ATA、MMC和USB,对应编号为0-2,这里我们新增FLASH的编号为3(注意,这里如果直接宏定义为FLASH的话,会和说stm32f4xx.h中重定义,所以这里宏定义为SPI_FLASH)到此文件系统的一直基本完成,需要主义的是,我们在上面对diskio.c文件的修改,使用到了之前我们实现的SPI读写FLASH部分函数,因此需要在diskio.c中也包含#include "bsp_spi_flash.h"头文件,并且源文件中还有。
原创
发布博客 2023.07.29 ·
2371 阅读 ·
3 点赞 ·
5 评论 ·
35 收藏

019 - STM32学习笔记 - Fatfs文件系统(一) - FatFs文件系统初识

当需要读取文件时,根据目录相中,读取到开始簇为2,找到文件分配表中,第2簇上读取到数据为3,表示下一部分数据指向存储在第3簇上,再到第3簇记录上读到下一簇得数据指向为4,一次向后,直到最后一簇11时,发现下一个指向为FF,表示到文件末尾了,到此文件就读取完了。例如在火哥的教程中举的例子,假设现在有0-99共100簇的存储空间(簇可以理解为扇区),其中第0簇是文件分配表,第1簇为目录,后续几个文件分别占用不同数量的扇区存储文件,这些文件的存储信息都在记录在第1簇的目录中。
原创
发布博客 2023.07.27 ·
3347 阅读 ·
2 点赞 ·
3 评论 ·
39 收藏

018 - STM32学习笔记 - SPI读写FLASH(三)- 写入字符串、小数与整数

上节对Flash的跨页写入数据进行了完善,但是数据写入都是以Byte数组的方式进行写入,这节分别进行字符串的写入和小数整数的写入,本节内容对SPI的函数不需要进行修改,在主函数的调用中会完善如何写入字符串、小数和整数。
原创
发布博客 2023.07.19 ·
1572 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

017 - STM32学习笔记 - SPI读写FLASH(二)-flash数据写入与读取

上节内容学习了通过SPI读取FLASH的JEDEC_ID,在flash资料的指令表中,还看到有很多指令可以使用,这节继续学习使用其他指令,程序模板采用上节的模板。这里的写入数据实现和I2C向EEPROM写入数据基本是一致的,不懂得可以看一下I2C的内容。在完善以下,写一个进阶版的。
原创
发布博客 2023.07.18 ·
3511 阅读 ·
3 点赞 ·
1 评论 ·
16 收藏

016 - STM32学习笔记 - SPI读写FLASH(一)

SPI 协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。在SPI总线中,一共有四条线:SCLK:同步时钟信号线,用于通讯数据同步。由通讯主机产生,决定了通讯的速率,不同的设备支持的最高时钟频率不一样,如 STM32 的 SPI 时钟频率最大为fpclk/2,两个设备之间通讯时,通讯速率由最低速率设备决定。
原创
发布博客 2023.07.09 ·
2051 阅读 ·
3 点赞 ·
0 评论 ·
15 收藏

015 - STM32学习笔记 - IIC读写存储器(二)

在上节内容中,学习了EEPROM的读写,我用的F429中EEPROM型号为:AT24C02,其容量为256*8=2Kb,这节学习一下如何对EEPROM进行更深层次的读写。函数,其作用是为了等待每次写入数据后,EEPROM回到准备状态,否则可能连续写入的时候,前面的数据刚写入,还没等EEPROM处理完,后面的数据就来了,这样容易写入失败。以上所有用到的bsp程序都是在之前的学习过程中慢慢写出来的,后面学习过程中也会不停的去积累,学习过的内容就不在此处重复占篇幅了,不懂得往前翻一翻看一下。
原创
发布博客 2023.06.21 ·
876 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏
加载更多