
STM32
文章平均质量分 85
分享STM32学习经验过程
果果小师弟
微信公众号:果果小师弟,电子信息在读研究生
展开
-
德州仪器TM4C1294KCPDT微控制器以太网LwIP使用教程
TM4C1294KCPDT是德州仪器(Texas Instruments)推出的一款基于ARM Cortex-M4内核的微控制器,属于TM4C129x系列产品。它具有丰富的外设资源和高性能、低功耗的特点,可广泛应用于工业自动化、物联网、智能家居、汽车电子、医疗设备等领域。原创 2023-03-27 19:50:40 · 1746 阅读 · 0 评论 -
各种数据类型的SPI, UART, I2C等方式的通信传输以及存储到EEPROM、Flash等设备的简易实现方法
各种数据类型编程EEPROM,SPI Flash等存储器的简易方法,一般这些存储器都是字节编程,写入浮点等数据类型时不太方便。这里分享一个方法,定义一个结构体,将各种数据类型封装进去原创 2022-12-10 13:05:01 · 1661 阅读 · 0 评论 -
TinyFlashDB:一种超轻量的可纠错的通用单片机flash存储方案
摘要:在单片机日常开发中,总会需要存储一些信息,这时就需要使用单片机FLASH存储的方案,目前单片机存储的方案有很多如:EASYFLASH、FLASHDB、OSAL_NV等等方案,他们程序都非常大,在存储不多的变量时不值得。而且现有方案的代码中很少有考虑到flash写入出错的情况。在实际产品中,嵌入式产品flash写入可能会受各种因素影响(电池供电、意外断电、气温等)从而并不是很稳定,一旦出现错误,会导致产品一系列问题。一、TinyFlashDB设计理念不同于其他很多的KV型数据库,TinyFlash原创 2022-05-26 09:25:38 · 2316 阅读 · 0 评论 -
画出属于你的最漂亮的数字时序图—WaveDrom
摘要:WaveDrom是一个免费开源的在线数字时序图渲染引擎。它可以使用JavaScript, HTML5和SVG来将时序图的WaveJSON描述转成SVG矢量图形,从而进行显示。WaveDrom可以嵌入到任何网页中。WaveDrom编辑器可在浏览器中运行,也可以安装在系统上,渲染引擎可以嵌入到任何网页中。一、WaveDrom功能绘制数字时序图、绘制寄存器图、绘制逻辑电路图二、WaveDrom的使用在线编辑器 https://wavedrom.com/editor.html官网 https原创 2022-01-21 14:44:15 · 6777 阅读 · 2 评论 -
一位嵌入式工程师,硬核单片机编程思想
摘要:没有思想的裸程序就如一副人体骨架,有个人形,但没有人样,骨骼之间的关节都是靠胶水或拉线连接起来的,生硬而呆板。如果给骨架包上皮肉,加上灵魂,我们就会惊叹:啊!这是帅哥,这是美女!因为骨架活了。一、裸编程是什么?先声明一个概念,裸编程,指的是在裸机上编写程序,裸机,在单片机领域就是指带着硬件的单片机控制系统,不要想歪咯。在裸机上编程,就犹如在一片荒地上开垦,任何一锄头下去,都会碰到硬生生的石头,要说做这有什么味?拓荒者追求的是来年的绿洲。而我们这些开垦裸机的所谓的工程师们追求的是什么?我们当然追求转载 2022-01-16 10:22:25 · 1160 阅读 · 0 评论 -
嵌入式最强调试终端神器—MobaXterm
摘要:现今软件市场上有很多终端工具,比如:secureCRT、Putty等等。secureCRT其实也是一款很强大的终端工具,但它是收费软件,一般公司不允许使用。Putty,非常小巧,免费软件,但是不支持标签,开多个会话的话就需要开多个窗口,窗口切换不方便。这两个软件的界面都不太美观。今天介绍的是一款集万千于一身的全能型终端神器——MobaXterm!这款神器的优点:支持SSH,FTP,串口,VNC,X server等功能;支持标签,切换也十分方便;众多快捷键,操作方便;有丰富的插件可以免费安装原创 2022-01-01 21:01:52 · 11057 阅读 · 11 评论 -
这是我看过最全面讲解嵌入式C语言回调函数和函数指针的教程
摘要:函数指针是指向函数的指针变量。通过函数指针C语言可以实现各种强大的功能与设计方法。而回调函数是函数指针最常见的用途,也是C语言面试当中的必考知识点和难点。在我们平时开发STM32或者其它单片机时,我们经常都会用到原厂提供的固件库函数,固件库函数中有非常多回调函数。那么什么是回调函数呢?回调函数是作为参数传递给另一个函数的函数。接受回调作为参数的函数预计会在某个时间点执行它。回调机制允许下层软件层调用上层软件层定义的函数。原创 2021-12-09 12:36:23 · 2947 阅读 · 7 评论 -
我在STM32单片机上跑神经网络算法—CUBE-AI
摘要:为什么可以在STM上面跑人工智能?简而言之就是通过X-Cube-AI扩展将当前比较热门的AI框架进行C代码的转化,以支持在嵌入式设备上使用,目前使用X-Cube-AI需要在STM32CubeMX版本7.0以上,目前支持转化的模型有Keras、TF lite、ONNX、Lasagne、Caffe、ConvNetJS。Cube-AI把模型转化为一堆数组,而后将这些数组内容解析成模型,和Tensorflow里的模型转数组后使用原理是一样的。一、环境安装和配置STM32CubeMXMDK/IAR/S.原创 2021-12-19 21:25:54 · 27048 阅读 · 10 评论 -
一个产品级MCU_LCD菜单框架设计
摘要:不知道有多少人折腾过液晶显示的菜单,我觉得很多人都应该搞过,我还记得以前大学参加电子设计竞赛获奖的作品,我就用到了一个12864,里面有菜单功能。以前可能觉得菜单高大上,其实并不是想象中的复杂,本文为大家分享一个用单色屏做的菜单框架。代码托管在github:https://github.com/wujique/stm32f407/tree/sw_arch 1、概述2、菜单框架设计作为一个底层驱动工程师,驱动写完了,是要写硬件测试程序的。这个测试程序,一般给测试部/硬件工程师用来测试硬件转载 2021-12-08 20:43:07 · 2180 阅读 · 1 评论 -
纯手工打造CPU的那些牛人们,欣赏令人叹为观止的纯手工布线和高超技
第1位牛人第1位是美国加州游戏开发人员Steve Chamberlin向我们展示的至高境界的DIY。BMOW-1处理器目前的运行频率是2MHz,理论上可以跑到3MHz。虽然只相当于现代微处理器的零头,但已经可以胜任很多工作了,比如Basic语言编程,比如玩玩吃豆子、国际象棋之类的小游戏。更多信息查看官方地址:http://www.bigmessowires.com/bmow1/配置如下:RAM:512KBROM:512KB视频:512×480分辨率、双色;128×240分辨率、256色音频:原创 2021-11-25 13:44:59 · 10392 阅读 · 4 评论 -
推荐一种超简单的硬件位带bitband操作方法,让变量,寄存器控制,IO访问更便捷,无需用户计算位置
摘要:51 单片机中通过关键字 sbit来实现位定义,操作时除了被操作的那一位发生改变之外,其它位不受影响。不过在STM32里面就没有 sbit 关键字了,不能直接对寄存器的进行单个位操作,如果你想单独修改寄存器某一位的话,其实还是有办法的—位带操作。说明:M3,M4内核都支持硬件位带操作,M7内核不支持。一、硬件位带操作优势优势1比如我们在地址0x2000 0000定义了一个变量unit8_t a, 如果我们要将此变量的bit0清零,而其它bit不变。a & = ~0x01这个过程就转载 2021-11-25 13:44:24 · 850 阅读 · 0 评论 -
STM32 ADC采样频率的理解
最大采样率如果设置PLCK2为6分频,那么ADCCLK为:72M/6=12MHz。在外部晶振为8MHZ的情况下,这是F103系列ADC得到的最大时钟频率。最小采样周期为1.5个周期+12.5周期=14周期。那么最大采样频率为:12MHZ/14周期=851.142KHZ≈851KHZ也就是1s可以采样851K个数据,对于STM32F1这个采样率已经是最大能力了。最小采样率如果设置PLCK2为8分频,那么ADCCLK为:72M/8=9MHz。在外部晶振为8MHZ的情况下,这是F103系列ADC得原创 2021-11-17 11:13:15 · 25325 阅读 · 9 评论 -
STM32内存管理
动态内存管理根据需要分配內存和回收内存通常在一块较大且连续的内存空间上进行分配和回收动态内存管理解决的问题内存资源稀缺,通过内存复用增加任务的并发性动态内存管理的本质时间换空间,通过动态分配和回收“扩大”物理内存动态内存管理的关键时间效率从发出内存申请到得内存的时间越短越好空间效率为了管理内存而占用的内存越少越好碎片化最大可分配内存占空闲内存总和的比例越大越好动态内存管理的分类定长内存管理将内存分为大小相同的单元,每次申请一个单元的内存变长内存管理每次申请原创 2021-11-12 16:32:06 · 1917 阅读 · 0 评论 -
高质量代码是怎么写出来的?串口环形队列
在此之前,我们来回顾一下队列的基本概念:队列 (Queue):是一种先进先出(First In First Out ,简称 FIFO)的线性表,只允许在一端插入(入队),在另一端进行删除(出队)。队列的特点类似售票排队窗口,先到的人看到能先买到票,然后先走,后来的人只能后买到票在计算机中,每个信息都是存储在存储单元中的,比喻一下吧,上图的一些小正方形格子就是一个个存储单元,你可以理解为常见的数组,存放我们一个个的信息。当有大量数据的时候,我们不能存储所有的数据,那么计算机处理数据的时候,只能先原创 2021-10-17 16:12:16 · 1241 阅读 · 0 评论 -
一个学妹写的按键检测函数把我秀翻了
摘要:今年实验室来了三个学妹,其中一个学妹以前是物联网专业的,进了实验室老师二话没说:先把STM32单片机过一遍,有啥问题就找小师弟。还好单片机小师弟会玩一点点,玩的也不好,所以一起学写吧!邪魅一笑!上来第一个例程就是使用按键点亮一个LED灯,好家伙。,点灯小师弟比较在行,毕竟32、FPGA、Linux的小灯都被小师弟点了一遍。哈哈哈!所以今天还是来说一说按键检测吧!如何进行按键检测检测按键有中断方式和 GPIO 查询方式两种。我们推荐大家用 GPIO 查询方式。从裸机的角度分析中断方式:中断原创 2021-10-04 13:14:13 · 9266 阅读 · 12 评论 -
使用SysTick实现多组软件定时器功能,你知道吗?
摘要:在单片机中,一想到定时器可能就会想到通用定时器(TIM2 ~ TIM5 和 TIM9 ~ TIM14)或者高级定时器(TIM1和TIM8)。这些定时器的功能很强大,除了基本的功能就是定时,还可以可以测量输入信号的脉冲宽度,可以生产输出波形。当然使用起来相对也比较复杂。如果我们的项目只想要定时的功能,使用这些定时器可能就有点不必要了,其实系统定时器SysTick也可以实现软件定时,只不过在裸机中我们大多是只是把他当做延时功能使用。一、SysTick简介SysTick—系统定时器是属于CM4内核中的原创 2021-09-27 14:29:03 · 3461 阅读 · 0 评论 -
干货|教你使用Doxygen制作出漂亮程序文档
https://www.doxygen.nl/download.html摘要:不知道大家有没有自己把自己的代码整理成文档的习惯,有没有给自己的代码一个非常漂亮的注释,就像下图这样。如果你写了一个结构体或者枚举是否也是这样注释的?如果你不是这样的话,你就必须要看这篇文章了。等等,别走!还有你是不是看过很多说明文档,比如下面这样的关于STM32标准外设驱动文档。你有没有想象过自己的代码也是可以这样打包成这样一个非常漂亮的文档的?今天就教大家如何给写注释,如何写出漂亮规范的注释,让人看着心旷神怡,透原创 2021-08-19 19:15:40 · 688 阅读 · 1 评论 -
一位业余爱好者花两年时间完成的STM32H7掌上电脑(软硬件开源)
1、项目背景幼儿时期,还记得一个孩子用泡沫、马达和电池做了一艘电动快艇在河里转着圈圈,泛起的淡淡涟漪让我心潮起伏,驻足河边流连忘返。童年时期,一盒四驱车,让我体验到了毫不起眼的小零件可以组装出这么一台强劲的四驱车。再后来,小霸王学习机风靡时期,经常赖在大孩子家看着别人打游戏自己也感到无比兴奋。初中时期,受风靡一时的文曲星、步步高电子词典中“英雄坛说”、“伏魔记”、“魔塔”带来的深深痴迷,孩提时代就梦想着自己有一天能亲手打造一台硬件软件全自主设计的掌机。这个梦伴随着我的成长,让我在大学时代选择了研究电子电转载 2021-08-13 16:45:42 · 3347 阅读 · 8 评论 -
使用RTT代替UART,把你的JLink变成串口调试助手~
摘要:不知道大家在单片机开发中是如何打印调试信息的,大多数应该是用串口调试打印吧,在大多数的情况下,一般在制板和写代码时都会预留串口1做为调试打印用。但是在实际开发如果没有预留串口怎么办?其实我们的下载器是可以用来作为调试打印来用的,只是很多小伙伴不知道这个功能而已,今天就来说一下如何用调试器JLink来打印信息。1、JLink仿真调试器下载器五花八门,但是我只用JLink,小巧方便携带。对于单片机开发者一般所用的下载器基本就是JLink和ST-Link。这两者功能差不多,JLink是SEEGER公.原创 2021-08-08 14:45:08 · 4729 阅读 · 4 评论 -
大端模式、小端模式、高字节序、低字节序、MSB、LSB
摘要:内存的读写永远从低地址开始读/写,从低到高!从低到高!从低到高!内存的读写永远从低地址开始读/写!!!字节序、比特序字节序就是串行发送多字节时发送的顺序,比如a=0x12345678,按字节发送是0x12 0x34 0x56 0x78顺序还是0x78…0x12顺序比特序同理但在bit层面进行排序,如果一个字节,指先发bit0 还是bit7, 如果是一个Word型,先发bit31还是先发bit0串口是LSB优先,I2C是MSB优先,这里的MSB、LSB指的是比特序,二进制位的位置,区别于【字节序原创 2021-08-08 14:37:41 · 31605 阅读 · 13 评论 -
STM32寄存器版的基础知识—内存映射
STM32F429芯片系统结构STM32F429 采用的是 Cortex-M4 内核,内核即 CPU,由 ARM公司设计。ARM 公司并不生产芯片,而是出售其芯片技术授权。芯片生产厂商(SOC)如 ST、TI、Freescale,负责在内核之外设计部件并生产整个芯片,这些内核之外的部件被称为核外外设或片上外设。如 GPIO、USART(串口)、I2C、SPI等都叫做片上外设。从上图我们可以清除的看到芯片和外设之间通过各种总线连接,其中主控总线有 8条,被控总线有 7 条。主控总线通过一个总线矩阵来连接被原创 2021-07-28 19:33:03 · 2555 阅读 · 3 评论 -
STM32 的FSMC功能理解
FSMC全称“静态存储器控制器”。使用FSMC控制器后,可以把FSMC提供的FSMC_A[25:0]作为地址线,而把FSMC提供的FSMC_D[15:0]作为数据总线。(1)当存储数据设为8位时,(FSMC_NANDInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_8b)地址各位对应FSMC_A[25:0],数据位对应FSMC_D[7:0](2)当存储数据设为16位时,(FSMC_NANDInitStructure.FSMC_Memo转载 2021-07-17 15:56:06 · 9137 阅读 · 0 评论 -
Keil MDK中使用AStyle插件对代码格式美化处理
摘要:通常我们写代码的时候,尤其是缩进和{}的使用,很多都需要自己手动去调整,如果有一个自动格式化代码的工具,每次编辑完代码,然后一键给将代码格式化,即省时又美观。为了解决这个问题,给大家推荐一个MDK插件—Astyle。一、下载AstyleAstyle全称Artistic Style,是一个免费,快速,小型的自动格式化程序,适用于C,C++,C++/CLI,Objective‑C,C#和Java源代码。官网地址:http://astyle.sourceforge.net/下载地址: https:/原创 2021-07-16 10:01:03 · 7951 阅读 · 8 评论 -
史上最全的LED点灯程序—使用STM32、FPGA、Linux点亮你的LED灯
摘要:不知道小伙伴们点亮过多少板子的LED灯,有很多小伙伴留言说讲一下stm32、fpga、liunx他们之间有什么不同,不同点很多,口说无凭,今天就来点亮一下stm32、fpga和liunx板子的led灯,大家大致看一下点灯流程和点灯环境以及点灯流程,就能大概的了解一下三者的区别,可以有选择的去学习!一、使用STM32点亮LED灯STM32从字面上来理解ST是意法半导体,M是Microelectronics的缩写,32 表示32位,合起来理解,STM32就是指ST公司开发的32位微控制器。在如今的3原创 2021-07-16 09:59:13 · 4212 阅读 · 6 评论 -
手把手教你 VSCode搭建STM32开发环境
摘要: 作为一个51单片机或STM32单片机的使用者,keil一直是我们的必备的一款工具之一。但keil的一些问题也一直存在,当然也有人用其他的比如STM32CubeIDE。但是今天推荐的是VScode+Keil Assistant插件,不需要很复杂的配置各种文件和环境变量,只需要一个插件即可!可以编译代码和下载程序。当我们的工程文件比较大的时候,编译一次代码需要很久可能会花费到四五分钟,但是我们用vscode编写和编译的话时间就会大大缩减,同时还支持右键的函数跳转和自动补齐功能。1、安装VScode原创 2021-06-30 21:09:00 · 7263 阅读 · 25 评论 -
Modbus协议解析_理论+实战
1.什么是Modbus?顾名思义,他是一个bus,即总线协议.如果你接触到这种协议,相信你所处的行业是工业方面或者你的产品用于工业。Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气 Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。Modbus已经成为工业领域通信协议的业界标准(De facto),并且现在是工业电子设备之间常用的连接方式。好了,现在知道了大概知道了,这是一个总线协议,是一个mod什么的公司发表的一个通信协议。那为什么要转载 2021-06-21 16:32:40 · 2444 阅读 · 3 评论 -
串口网口16进制发送的和ASCII发送以及16进制接收和ASCII接收区别
我们在工控软件中,会经常使用到网口和串口,去接受和发送数据。通常我们发送数据的模式有两种,一种16进制,一种是ASCII码。16进制的的经常会用来和仪器PLC等设备通讯。ACSII码是一种文本模式。1、当我们不点选16进制时,按文本模式发送。这是我们输入的文本区的内容是一个个字符。比如输入06,这时06为‘0’和‘6’两个字符。发送的时候会将字符‘0’的ASCII码和字符‘6’的ASCII码发送出去,即是0x30和0x36。当我们以文本模式(ASCII)接收时就会收到06,当我们以16进制(HXE)接收时原创 2021-06-18 15:05:09 · 26597 阅读 · 8 评论 -
公众号万粉感言,抽3000元大奖!
一万粉啦!2021年5月11日,果果小师弟公众号迎来了第10000位粉丝。截止今天已经有10218位小伙伴加入了果果小师弟的大家庭中来了!很激动!看着很多做公众号的号主都已经突破万粉,我的万粉虽然到来的比较慢,但是我会继续努力,向下一个万粉冲刺,持续为大家带来优质文章,万粉了嘛,今天就跟大家说一说做公众号这一年多来的感想,与诸君共勉,顺带给大家发点福利!1、你是怎么想着要做公众号的公众号是去年1月份注册的,当时正是考研初试结束的时候,没啥事就想着做一下公众号。毕竟快毕业了,想把大学这四年所学到的知原创 2021-05-14 15:18:15 · 896 阅读 · 2 评论 -
tcpserver.c
/*vim tcpserver.cgcc -o tcpserver tcpserver.c./tcpservernetstat -ap|grep tcpserver*/#include <sys/types.h> #include <sys/socket.h>#include <stdio.h>#include <string.h>#include <netinet/in.h>#include <arpa/inet.原创 2021-05-08 10:46:06 · 757 阅读 · 2 评论 -
干货|单片机的指针怎么学?
摘要:不知道大家想过没有我们用keil写单片机的代码。你的函数啊、变量啊最终都放在了哪里?CPU使用的变量是存储在RAM里面的,要问我RAM是啥,RAM就是个芯片。你只需要知道CPU是通过导线和RAM芯片连接的,然后可以通过导线往RAM芯片里面存储数据和读数据。首先呢RAM需要有个一开始的地址,假设是下面的0x20000000 ,要问我为啥要规定地址。只有规定了地址CPU才好对数据进行存储,要是没有地址,瞎几把存,瞎几把取…定义一个变量,然后打印下这个变量存储的地址。1.定义了一个int型的变量,原创 2021-05-08 10:18:11 · 3958 阅读 · 16 评论 -
开源|手把手教你造一个火星车
摘要:大学的时候总有很多想法,觉得那些能自己设计电子作品的人特别牛。图书馆陈列这很多的书籍,但是总感觉停留在理论上离我们很遥远,我需要的是实干把东西做出来。想到还有很多小伙伴和以前我一样想造车却不知道如何开始,我特意把我所有的资料和设计全部开源。闲暇时间也可以给小伙伴们一些指导和建议,其实这些东西很简单你们觉得难是因为没有得到合适的引导。希望我的举动能给那些造车学习的小伙伴一点点借鉴和帮助,也期待有小伙伴的加入能让这个车变得更加完善智能。随着我国的航天事业蒸蒸日上,浩航星辰离我们不再那么遥远。你的内心是否转载 2021-04-30 19:13:18 · 2717 阅读 · 1 评论 -
STM32三种BOOT启动模式详解(全网最全)
一、三种boot启动模式一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。1、第一种方式(boot0 = 0):Flash memory启动方式启动地址:0x08000000 是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。基本上都是采用这种模式。2、第二种方式(boot0 = 1;boot1 = 0):原创 2021-04-23 13:09:20 · 99109 阅读 · 11 评论 -
STM32单片机修改寄存器的位操作方法(全网最全)
使用 C语言对寄存器赋值时,我们常常要求只修改该寄存器的某几位的值,且其它的寄存器位不变,这个时候我们就需要用到 C 语言的位操作方法了。1. 把变量的某位清零此处我们以变量 a代表寄存器,并假设寄存器中本来已有数值,此时我们需要把变量a 的某一位清零,且其它位不变。//定义一个变量 a = 1001 1111 b (二进制数)unsigned char a = 0x9f;//对 bit2 清零a &= ~(1<<2);//括号中的 1 左移两位,(1<<原创 2021-04-23 09:45:54 · 4135 阅读 · 0 评论 -
IAP程序升级(全网最全)
一、什么是IAP,为什么要IAPIAP即为In Application Programming(在应用中编程),一般情况下,以STM32F10x系列芯片为主控制器的设备在出厂时就已经使用J-Link仿真器将应用代码烧录了,如果在设备使用过程中需要进行应用代码的更换、升级等操作的话,则可能需要将设备返回原厂并拆解出来再使用J-Link重新烧录代码,这就增加了很多不必要的麻烦。站在用户的角度来说,就是能让用户自己来更换设备里边的代码程序而厂家这边只需要提供给用户一个代码文件即可。而IAP却能很好的解决掉这个原创 2021-04-22 22:20:01 · 14897 阅读 · 7 评论 -
正点原子DS100 手持示波器开箱测评~
正点原子DS100 手持示波器开箱测评~ 果果小师弟专属福利很多小伙伴看了视频想买一台DS100试试,所以我特向正点原子官方申请了80元果果小师弟专属优惠券,下单立减!每个人仅能选择领取一张,福利时间:4.14-4.17!超过时间只能九折优惠啦!活动长期有效!有需要的小伙伴可以通过我的微信公众号添加我的微信领取优惠券哟活动真实,长期有效!...原创 2021-04-14 19:34:27 · 2770 阅读 · 0 评论 -
物联网中常用的数据处理方法
取出某一段数据中的某部分数据/*********************************************************** 函数名称:Find_string(char *pcBuf,char*left,char*right, char *pcRes) 函数功能:寻找特定字符串 入口参数: char *pcBuf 为传入的字符串 char*left 为搜索字符的左边标识符 例如:"[" char*r原创 2021-04-10 14:35:33 · 1805 阅读 · 2 评论 -
STM32F103系列单片机的FLASH和RAM大小
STM32F103C8T6CPU:STM32F103RCT6,LQFP64,FLASH:64KB,RAM:20KBflash起始地址为0x8000000,大小为0x10000(16进制)—>65536字节(10进制)—>64KBRAM起始地址为0x2000000,大小为0x5000(16进制)—>20480字节(10进制)—>20KBSTM32F103RCT6CPU:STM32F103RCT6,LQFP64,FLASH:256KB,SRAM:48KB;flash起始地址原创 2021-04-10 14:34:55 · 35788 阅读 · 5 评论 -
华为太空人智能表盘代码仅需100行?
摘要:我来告诉你他到底有什么秘密,风儿风儿吹风儿风儿吹吹!听说最近太空人智能表盘很火啊,那么如何用C++做一个好玩的智能太空人表盘呢?安排!软件工具:Vsiual studio 201x1、安装Vsiual studio首先在官网下载安装Vsiual studiohttps://visualstudio.microsoft.com/zh-hans/下载完成后傻瓜式安装即可,如果你电脑上已经安装过Vsiual studio软件了这一步就可以忽略了。2、安装EasyX图形库由于太空人表盘界面.原创 2021-04-06 14:30:36 · 9879 阅读 · 15 评论 -
不忘初心,方得始终!——纪念我逝去的大学生活
一个普通人的大学四年生活原创 2021-02-26 22:43:58 · 3132 阅读 · 14 评论 -
手把手教你在显示设备上制作一个菜单
摘要:程序中菜单的种类与菜单化程序具有明显的优势,程序的实现方式通常有两种:一种是基于命令行方式,即通过输入指令驱动程序实现相应的功能;二是基于菜单方式,即通过选择不同的菜单实现程序的不同功能。前者的最大缺点是必须精确掌握指令,对操作者而言,它不是十分方便;后者,则只要通过选择不同的菜单项,就可以实现不同的功能,因此,它便于操作,成为程序实现的主流方式。菜单(menu)已经被广泛应用于各种程序中。可以毫不夸张地说,几乎所有程序都使用菜单驱动方式。因而,掌握基于菜单的程序开发是十分必要的。程序中使用的菜单.原创 2021-01-13 14:29:00 · 2730 阅读 · 0 评论