Mculover666
优快云博客专家,微信公众号mculover666,凭借与生俱来的热爱专注于嵌入式领域,在自己折腾的同时,以文字的方式分享所玩、所思、所想、所悟,作为一个技术人,我们一起前进~
展开
-
智能硬件产品中常用的参数存储和管理方案
一些常见的软件管理方案如下,这些方案都有其适用的场景,根据存储介质的特点和具体应用场景进行权衡,在使用过程中需要灵活使用,甚至可以配合使用。参数能通过硬件进行存储后,还需要进行软件的管理,比如参数读取、参数写入、参数备份、参数重置、参数更新等软件功能。云存储是一种通过互联网将数据存储在远程服务器上的方法,适用于需要大容量和易于共享的场景。一些常见的参数存储方案如下,每种存储方案在不同的智能硬件产品中都有其独特的应用场景,EEPROM是一种容量较小的存储器,在产品中需要外挂一片EEPROM,适用于存储。原创 2024-06-08 09:49:37 · 910 阅读 · 0 评论 -
STM32CubeMX | 44 - 使用GPIO点亮单总线RGBLED
在DragonFly上有四个全彩灯相连:其中RGB_LED连接到STM32的PB9引脚。原创 2023-06-11 10:34:47 · 2741 阅读 · 0 评论 -
CLion开发工具 | 06 - 使用CLion开发STM32(无需Cmake)
OpenOCD连接之后烧写Flash可以使用program命令(openocd命令),此命令烧录bin文件和hex文件是有区别的,如下。本文使用的编译器是arm-none-eabi-gcc,所以要需要重新定义_write函数。OpenOCD连接开发板的时候需要指定两个文件:下载器配置文件和目标芯片配置文件。在usart.c中添加代码,将printf重定向到usart1。原创 2023-04-29 13:46:07 · 1725 阅读 · 0 评论 -
STM32CubeMX | 43-1 - 认识OV2640摄像头
OV2640的公司OmniVision技术定义和部署的总线,全称Serial Camera Control Bus,是一种3线总线,用来控制OmniVision公司的大多数图像传感器。为了降低引脚封装,SCCB通常在修改的2线总线模式操作。SCCB总线框图如下:在只有一个从机的情况下,可以使用2线SCCB接口,省去片选引脚,如下:SCCB_E:片选引脚SIO_C:时钟引脚SIO_D:数据引脚。原创 2023-04-05 17:57:05 · 2109 阅读 · 0 评论 -
ringbuff | 通用FIFO环形缓冲区实现库
嵌入式开源项目精选专栏本专栏由Mculover666创建,主要内容为寻找嵌入式领域内的优质开源项目,一是帮助开发者使用开源项目实现更多的功能,二是通过这些开源项目,学习大佬的代码及背后的实现思想,提升自己的代码水平,和其它专栏相比,本专栏的优势在于:不会单纯的介绍分享项目,还会包含作者亲自实践的过程分享,甚至还会有对它背后的设计思想解读。目前本专栏包含的开源项目有:cJSON | 一个轻量级C语言JSON解析器paho | 支持10种语言编写mqtt客户端,总有一款适合你!MultiButt.原创 2020-06-06 10:58:39 · 6964 阅读 · 2 评论 -
STM32全链路开发实战教程专栏总目录(2022.10.19更新)
本教程专注于IoT领域开发,内容用五个字概括:**从裸机到云端**。原创 2022-09-19 22:49:14 · 5445 阅读 · 3 评论 -
【Keil MDK】(二)Keil MDK中芯片器件包的安装
因为基于Arm Cortex-M的微控制器实在太多,我们也不可能全部都用到,如果都集成在MDK里会显得臃肿,所以Keil将这些器件包独立出来,我们选择有用的下载安装即可。1.下载器件包keil MDK支持的器件包在官网都有,附上链接:MDK5 软件包。这里我们以STM32F4为例,下载STM32F4的软件包:2.安装器件包双击运行下载的Keil.STM32F4xx_DFP.2.13.0...原创 2019-07-09 15:02:33 · 6918 阅读 · 2 评论 -
【Keil MDK】(三)Keil MDK更换Sublime Text Molokai主题
Keil MDK默认的界面主题非常丑,话不多说,上图:这么丑的界面不利于代码的发挥,所以接下来我们开始美化主题,更换一个Sublime Text Molokai主题~1.下载需要的文件链接:提取码:2.备份默认主题文件首先找到Keil安装目录(以下以此安装目录为例):H:\Keil_v5,可以看到,目录下存在如下几个文件夹/文件:ARMUV4TOOLS.INIUnins...原创 2019-07-09 15:02:48 · 8529 阅读 · 10 评论 -
【Keil MDK】(四)Keil MDK的一些推荐功能(编码格式、自动保存、代码提示、动态语法检查、多核编译)
MDK的设置通过点击“扳手图标”打开:1.编码格式及tab空格设置编写代码时通常会写中文注释,但是在Keil MDK的默认编码格式中,中文占两个字符的位置,需要删除两次,而且经常会乱码,所以选择使用GB2312编码;另外,在使用tab键进行缩进时,为了发生不同编辑器发生乱码,一个tab键=4个空格:2.代码自动提示功能MDK中有代码的自动提示功能,如图:3.动态语法检查在MDK...原创 2019-07-09 15:03:00 · 7286 阅读 · 1 评论 -
【STM32开发环境】Linux下开发stm32(一) | 使用gcc-arm-none-eabi工具链编译
1.为什么不是gcc之前我们花了三篇文章介绍Linux下如何进行C语言编程:Linux C语言编程(上篇) | gcc的使用Linux C语言编程(中篇) | make的使用Linux C语言编程(下篇) | gdb的使用这是为了给接下来的Linux下嵌入式开发打好基础,尽快熟悉Linux下c编程,但是在开发stm32的时候,编译工具链要使用gcc-arm-none-eabi,为什么...原创 2018-12-08 17:41:53 · 16932 阅读 · 5 评论 -
【STM32开发环境】Linux下开发stm32(三) | 寄存器工程开发
先来回顾一下,前两篇Linux下开发stm32(一) | 使用gcc-arm-none-eabi工具链编译和Linux下开发stm32(二) | 使用openocd下载与调试中,我们介绍了如何创建一个空的裸机工程(只有启动文件和main文件),并编译工程生成elf文件,然后将其转为bin格式或hex格式,使用openocd下载,最后编写了一个makefile雏形,并成功点亮了一个LED~但是这个...原创 2018-12-10 19:44:54 · 4554 阅读 · 0 评论 -
【STM32开发环境】Linux下开发stm32(四) | 固件库工程开发
st官方固件库是在寄存器操作之上的,但是使用寄存器操作的话,需要注意的地方很多,需要对照参考手册一个一个赋值,稍有不慎便会出错,所以固件库将外设的初始化封装成初始化结构体,将外设的操作封装在函数中,将寄存器赋值的操作都封装起来,我们只需要调用API就可以,这样一来既提高了开发效率,也减少了代码量,如果还不能在MDK里熟练使用固件库编程,建议先补基础~接下来,我们在上一节寄存器工程的基础上,添加固件...原创 2018-12-12 17:04:40 · 3832 阅读 · 6 评论 -
【STM32Cube_01】初识 STM32 Cube 生态系统
文章目录STM32Cube EcosystemSTM32Cube PC ToolsSTM32 Embedded SoftwareSTM32Cube MCU Packages底层库代码中间件代码用户代码STM32Cube ExpansionSTM32Cube EcosystemSTM32Cube是ST公司开发的一套生态系统,致力于使STM32的开发变的更简单,并且100%开源免费。在开始介绍之...原创 2019-07-09 18:51:33 · 6865 阅读 · 0 评论 -
【STM32Cube_03】使用GPIO点亮一个LED
文章目录1. 准备工作硬件准备软件准备2.生成MDK工程 — 以点亮一个LED为例选择芯片型号配置时钟源配置GPIO引脚配置时钟树配置工程生成代码3. 在MDK中编写、编译、下载用户代码1. 准备工作硬件准备首先需要准备一个开发板,这里我准备的是STM32L4的开发板。软件准备需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码。2.生成MDK工程 — 以点亮一个LE...原创 2019-07-09 22:07:55 · 7383 阅读 · 9 评论 -
【STM32Cube_04】使用GPIO进行按键检测
1. 准备工作硬件准备首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):软件准备需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码。2.生成MDK工程 — 初始化GPIO为输入选择芯片型号打开STM32CubeMX,打开MCU选择器:搜索并选中芯片STM32L431RCT6:配置时钟源如果选择使用外部高速时钟(HSE),则...原创 2019-07-14 19:45:40 · 4531 阅读 · 4 评论 -
【STM32Cube_05】使用EXIT中断检测按键(NVIC配置+HAL库中断处理机制)
1. 准备工作硬件准备首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):软件准备需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码。2.生成MDK工程 — 初始化GPIO为输入选择芯片型号打开STM32CubeMX,打开MCU选择器:搜索并选中芯片STM32L431RCT6:配置时钟源如果选择使用外部高速时钟(HSE),则...原创 2019-07-15 10:24:40 · 8749 阅读 · 11 评论 -
【STM32Cube_06】使用USART发送和接收数据(查询模式)
1. 准备工作硬件准备首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):软件准备需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码;准备一个串口调试助手,这里我使用的是Serial Port Utility;2.生成MDK工程 — 初始化GPIO为输入选择芯片型号打开STM32CubeMX,打开MCU选择器:搜索并选中芯片S...原创 2019-07-15 14:51:28 · 5476 阅读 · 6 评论 -
【STM32Cube_07】使用USART发送和接收数据(中断模式)
1. 准备工作硬件准备首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):软件准备需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码;准备一个串口调试助手,这里我使用的是Serial Port Utility;2.生成MDK工程 — 初始化GPIO为输入选择芯片型号打开STM32CubeMX,打开MCU选择器:搜索并选中芯片S...原创 2019-07-15 15:35:06 · 5975 阅读 · 1 评论 -
【STM32Cube_08】使用USART发送和接收数据(DMA模式)
本篇文章主要介绍如何使用STM32CubeMX初始化STM32L431RCT6的USART,并使用**DMA模式**发送数据和接收数据。原创 2019-08-18 19:50:13 · 4500 阅读 · 6 评论 -
【STM32Cube_09】重定向printf函数到串口输出的多种方法
本文详细的介绍了如何重定向printf输出到串口输出的多种方法,包括调用MDK微库(MicroLib)的方法,调用标准库的方法,以及适用于 `GNUC` 系列编译器的方法。原创 2019-08-20 14:33:34 · 7172 阅读 · 11 评论 -
【STM32Cube_10】使用ADC读取气体传感器数据(MQ-2)
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的ADC外设,读取MQ-2气体传感器的数据并通过串口发送。原创 2019-08-21 10:18:39 · 6165 阅读 · 1 评论 -
【STM32Cube_11】使用通用定时器闪烁LED
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的通用定时器外设,以中断的方式使LED闪烁。原创 2019-08-22 12:59:03 · 3480 阅读 · 0 评论 -
【STM32Cube_12】使用通用定时器产生PWM驱动蜂鸣器
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的通用定时器外设,产生PWM驱动无源蜂鸣器。原创 2019-08-23 11:16:27 · 5509 阅读 · 2 评论 -
【STM32Cube_13】使用硬件I2C读写EEPROM(AT24C02)
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件I2C外设读取EEPROM数据(以AT24C02为例)。原创 2019-08-26 14:06:42 · 5499 阅读 · 6 评论 -
【STM32Cube_14】使用硬件I2C读写环境光强度传感器(BH1750)
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件I2C外设读取环境光强度传感器数据(BH1750)原创 2019-08-27 11:25:43 · 6574 阅读 · 6 评论 -
【STM32Cube_15】使用硬件I2C读取温湿度传感器数据(SHT30)
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件I2C外设,读取SHT30温湿度传感器的数据并通过串口发送。原创 2019-08-28 09:47:16 · 6280 阅读 · 4 评论 -
【STM32Cube_16】使用硬件CRC校验数据(以SHT30为例)
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件CRC外设校验数据,并用SHT30温湿度传感器为例检查是否可以正确校验。原创 2019-08-29 10:25:19 · 3344 阅读 · 0 评论 -
【STM32Cube_17】使用硬件SPI驱动TFT-LCD(ST7789)
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件SPI外设与ST7789通信,驱动16bit TFT-LCD 屏幕。原创 2019-08-30 09:58:35 · 11228 阅读 · 17 评论 -
【STM32Cube-18】使用硬件QSPI读写SPI Flash(W25Q64)
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的硬件QSPI外设与 SPI Flash 通信(W25Q64)。原创 2019-09-04 12:22:13 · 8821 阅读 · 6 评论 -
【STM32Cube-19】使用SDMMC接口读写SD卡数据
现在人工智能非常火爆,一般的教程都是为博硕生准备的,太难看懂了,分享一个非常适合小白入门的教程,不仅通俗易懂而且还很风趣幽默,点☞这里☜进入传送门~上一篇:【STM32Cube-18】使用硬件QSPI读写SPI Flash(W25Q64)寻求更好的阅读体验,请移步:Mculover666的个人博客。本篇详细的记录了如何使用STM32CubeMX配置STM32L431RC...原创 2019-09-05 12:20:22 · 5922 阅读 · 4 评论 -
【STM32Cube_20】在SD卡上移植FATFS文件系统
本篇详细的记录了如何使用STM32CubeMX移植FATFS文件系统到SD卡上。1. 准备工作硬件准备开发板首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):Micro SD卡小熊派开发板板载 Micro SD 卡槽,需要提前自行准备一张 Micro SD卡,如图:软件准备需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的...原创 2019-10-22 18:45:10 · 3115 阅读 · 4 评论 -
【STM32Cube_21】使用DAC输出任意指定电压
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的DAC外设,输出任意指定电压值。1. 准备工作硬件准备开发板首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):万用表软件准备需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码;准备一个串口调试助手,这里我使用的是Serial Port Utili...原创 2019-11-02 14:07:50 · 3846 阅读 · 0 评论 -
【STM32Cube_22】使用ADC读取电压值
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的ADC外设,读取DAC输出引脚的电压值。1. 准备工作硬件准备开发板首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):软件准备需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码;准备一个串口调试助手,这里我使用的是Serial Port Utili...原创 2019-11-02 14:09:31 · 5555 阅读 · 0 评论 -
【STM32Cube_23】使用USART接收GPS数据并解析(L80-R)
本篇详细的记录了如何使用STM32CubeMX配置STM32L431RCT6的 USART 外设,接收 GPS 模块的数据并解析。1. 准备工作硬件准备开发板首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):GPS模块(L80-R)Quectel L80-R 是一款集成了贴片天线的紧凑型GPS模块,非常适合在物联网设备中使用,尤其适合在车载、个人...原创 2019-11-02 14:12:38 · 7777 阅读 · 11 评论 -
【玩转嵌入式屏幕显示】(一)显示器概述(常见显示器及其显示原理)
什么是显示器显示器是计算机的I/O设备,是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具。常见显示器及其显示原理CRT显示器LCD显示器(液晶)LED点阵显示器OLED显示器CRT显示器CRT显示器即使用阴极射线显像管(Cathode Ray Tube)的显示器,体积过大,非常笨重,现在几乎淘汰,如图:LCD显示器液晶显示器,即Liquid Crystal Disp...原创 2019-11-23 22:07:56 · 4765 阅读 · 0 评论 -
【玩转嵌入式屏幕显示】(三)TFT-LCD屏幕打点 + 画线 + 画矩形 + 画圆Bresenham算法实现(基于打点函数,算法可移植到任何屏幕的驱动程序之上)
0. 引言TFT-LCD屏幕的画直线、画斜线、画矩形、画圆等算法都是基于打点函数的,所以此程序可以移植到任何屏幕的基本驱动程序之上。1. 打点函数 —— 底层函数(移植需修改)打点函数其实就是屏幕显存(液晶控制器显存)中某一个点的颜色值。针对SPI驱动的TFT-LCD屏幕:/** * @brief 带颜色画点函数 * @param x,y —— 画点坐标 * @return...原创 2019-11-23 22:08:27 · 11775 阅读 · 8 评论 -
【玩转嵌入式屏幕显示】(四)TFT-LCD屏幕显示英文字符(ASCII)和字符串
1. 简单的显示测试程序 — 帮助理解使用PCtoLCD对字符取模无论什么屏幕,都是由一个个像素点组成的,所以显示英文字符’A’的原理如图:显示一个字符需要确定字符的高度和宽度:宽度的像素点是高度的一半;高度是16/24/32个像素点,称为字号(上图中是16个像素点)取模软件使用PCtoLCD2002完美版,附上下载链接。取模软件中的设置如下:生成数据:C51格式:点阵格...原创 2019-11-23 22:08:50 · 7461 阅读 · 8 评论 -
【玩转嵌入式屏幕显示】(五)TFT-LCD屏幕显示图片
1. 使用取模软件对图片取模取模软件使用Img2LCD,附上下载链接。首先准备一张用于显示的图片,修改图片像素值为240*240:在取模软件中打开图片:2. 编写图片显示函数/** * @brief 显示图片函数 * @param x,y 起点坐标 * @param width 图片宽度 * @param height 图片高度 * @param p...原创 2019-11-23 22:09:16 · 14017 阅读 · 8 评论 -
LiteOS内核教程01 | IoT-Studio介绍及安装
本文首发于公众号『mculover666』,在学习本教程的过程中,可以登录华为云论坛小熊派板块进行发帖交流!1. 物联网一站式开发工具 —— IoT StudioIoT Studio 是支持 LiteOS 嵌入式系统软件开发的工具,提供了代码编辑、编译、烧录 及调试等一站式开发体验,支持 C、C++、汇编等多种开发语言,让您快速,高效地进 行物联网开发。2. IoT Studio 支持...原创 2019-11-28 20:57:16 · 3593 阅读 · 0 评论 -
LiteOS内核教程02 | HelloWorld
本文首发于公众号『mculover666』,在学习本教程的过程中,可以登录华为云论坛小熊派板块进行发帖交流!1. 创建HelloWorld工程打开IoT Studio,点击创建IoT Studio工程:填写工程设置,需要注意一下几点:工程名称和目录中不可以有中文或者空格SDK版本选择最新的IoT_LINK版本,当前最新1.0.0硬件平台选择STM32L431RC_BearPi...原创 2019-11-28 20:59:02 · 1900 阅读 · 3 评论