暂时未有相关云产品技术能力~
电子信息工程硕士在读,同名微信公众号:果果小师弟! 个人主页:www.zhiguoxin.cn
所谓数组,就是一个集合,里面存放了相同类型的数据元素 **特点1:** 数组中的每个==数据元素都是相同的数据类型== **特点2:** 数组是由==连续的内存==位置组成的
C/C++支持最基本的三种程序运行结构:==顺序结构、选择结构、循环结构== * 顺序结构:程序按顺序执行,不发生跳转 * 选择结构:依据条件是否满足,有选择的执行相应功能 * 循环结构:依据条件是否满足,循环多次执行某
本章我们主要讲解以下几类运算符:
C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存
本教程采用vs code编译器来编译运行C++,不采用Visual studio。注意:在vs code中编译C++程序不需要system("pause");这句代码。
一个由C/C++编译的程序占用的内存分为以下几个部分 * 栈区(stack)— **由编译器自动分配释放,存放函数的参数值,局部变量的值等**。 * 堆区(heap) — **由程序员分配和释放,若程序员不释放,程序结束时可能由OS回收**。 * 全局区(静态区)(static)—**全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量、未初始化的静态变量在相邻的另一块区域**。 * 文字常量区 — **常量字符串就是放在这里的**。 * 程序代码区 — **存放函数体的二进制代码**。
#Pragma Pack主要是用在字节对齐方面,为什么要对齐呢? 因为计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。
图像处理中,大部分的处理方法都需要事先把彩色图转换成灰度图才能进行相关的计算、识别。 彩色图转换灰度图的原理如下: 我们知道彩色位图是由R/G/B三个分量组成,其文件存储格式为 BITMAPFILEHEADER+BITMAPINFOHEADER,紧跟后面的可能是: * 如果是24位真彩图,则每个点是由三个字节分别表示R/G/B,所以这里直接跟着图像的色彩信息; * 如果是8位(256色),4位(16色),1位(单色)图,则紧跟后面的是调色板数据,一个RGBQUAD类型的数组,其长度由BITMAPINFOHEADER.biClrUsed来决定。 然后后面紧跟的才是图像数据(24位图是真实的图像数
BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。在系统中以BMP为扩展名保存。 打开Windows的画图程序,在保存图像时,可以看到三个选项:2色位图(黑白)、16色位图、256色位图和24位位图。这是最普通的生成位图的工具,在这里讲解的BMP位图形式,主要就是指用画图生成的位图. 一般的bmp图像都是24位,也就是真彩。每8位为一字节,24位也就是使用三字节来存储每一个像素的信息,三个字节对应存放r,g,b三原色的数据每个字节的存贮范围都
1)程序结构是三种: 顺序结构 、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是 他的地址. 4)bit是位 是指为0 或者1。 byte 是指字节,**一个字节 = 八个位**
单片机应用系统是合理的硬件与完善的软件的有机组合。软件就是各种指令依某种规律组合形成的程序。程序设计(或软件设计)的任务是利用计算机语言对系统预完成的任务进行描述和规定。
指令是CPU按照人们的意图来完成某种操作的命令。一台计算机的CPU所能执行全部指令的集合称为这个CPU的指令系统。**指令系统功能的强弱决定了计算机性能的高低**。 80C51单片机具有111条指令,其指令系统的特点为: (1)**执行时间短。1个机器周期指令有64条,2个机器周期指令有45条,而4个机器周期指令仅有2条**(即乘法和除法指令); (2)指令编码字节少。**单字节的指令有49条,双字节的指令有45条,三字节的指令仅有17条**; (3)位操作指令丰富。这是80C51单片机面向控制特点的重要保证。
Intel公司推出的MCS-51系列单片机以其典型的结构、完善的总线、特殊功能寄存器的集中管理方式、位操作系统和面向控制的指令系统,为单片机的发展奠定了良好的基础。 8051是MCS-51系列单片机的典型品种。众多单片机芯片生产厂商以8051为基核开发出的CHMOS工艺单片机产品统称为80C51系列。
  ENIAC 是电子管计算机,时钟频率虽然仅有 100 kHz,但能在 1 s 的时间内完成 5 000 次加法运算。与现代的计算机相比,ENIAC 有许多不足,但它的问世开创了计算机科学技术的新纪元,对人类的生产和生活方式产生了巨大的影响。   在研制 ENIAC 的过程中,匈牙利籍数学家冯·诺依曼担任研制小组的顾问,并在方案的设计上做出了重要的贡献。1946 年 6 月,冯·诺依曼又提出了
WaveDrom是一个免费开源的在线数字时序图渲染引擎。它可以使用JavaScript, HTML5和SVG来将时序图的WaveJSON描述转成SVG矢量图形,从而进行显示。WaveDrom可以嵌入到任何网页中。WaveDrom编辑器可在浏览器中运行,也可以安装在系统上,渲染引擎可以嵌入到任何网页中。
没有思想的裸程序就如一副人体骨架,有个人形,但没有人样,骨骼之间的关节都是靠胶水或拉线连接起来的,生硬而呆板。如果给骨架包上皮肉,加上灵魂,我们就会惊叹:啊!这是帅哥,这是美女!因为骨架活了。
现今软件市场上有很多终端工具,比如:secureCRT、Putty等等。secureCRT其实也是一款很强大的终端工具,但它是收费软件,一般公司不允许使用。Putty,非常小巧,免费软件,但是不支持标签,开多个会话的话就需要开多个窗口,窗口切换不方便。这两个软件的界面都不太美观。
前面分享了关于指针和结构体使用过程,今天是同系列的函数指针和回调函数。函数指针是指向函数的指针变量。通过函数指针C语言可以实现各种强大的功能与设计方法。而回调函数是函数指针最常见的用途,是C语言的重中之重,也是C语言面试当中的必考知识点和难点。
为什么可以在STM上面跑人工智能?简而言之就是通过X-Cube-AI扩展将当前比较热门的AI框架进行C代码的转化,以支持在嵌入式设备上使用,目前使用X-Cube-AI需要在STM32CubeMX版本7.0以上,目前支持转化的模型有Keras、TF lite、ONNX、Lasagne、Caffe、ConvNetJS。Cube-AI把模型转化为一堆数组,而后将这些数组内容解析成模型,和Tensorflow里的模型转数组后使用原理是一样的。
51 单片机中通过关键字 sbit来实现**位**定义,操作时除了被操作的那一位发生改变之外,其它位不受影响。不过在STM32里面就没有 sbit 关键字了,不能直接对寄存器的进行单个位操作,如果你想单独修改寄存器某一位的话,其实还是有办法的—位带操作。
如果设置PLCK2为6分频,那么ADCCLK为:72M/6=12MHz。在外部晶振为8MHZ的情况下,这是F103系列ADC得到的最大时钟频率。
* 根据需要分配內存和回收内存 通常在一块较大且连续的内存空间上进行分配和回收 * 动态内存管理解决的问题 内存资源稀缺,通过内存复用增加任务的并发性 * 动态内存管理的本质 时间换空间,通过动态分配和回收“扩大”物理内存
串口是通信中最常用的通信方式,可能写串口的驱动,能写几十种方法, 查询方式,中断方式, DMA方式,定时器方式。可能也其中几种方式的组合形式,经典的用法是: 发送用查询方式, 接收用中断方式,或者DMA+空闲中断。 本篇不讲串口是啥,现在还在讲串口是啥,估计会被喷。今天来聊一聊串口常用的几种方式,最简单的方法就不说了。
今年实验室来了三个学妹,其中一个学妹以前是物联网专业的,进了实验室老师二话没说:先把STM32单片机过一遍,有啥问题就找小师弟。还好单片机小师弟会玩一点点,玩的也不好,所以一起学写吧!邪魅一笑!
在单片机中,一想到定时器可能就会想到通用定时器(TIM2 ~ TIM5 和 TIM9 ~ TIM14)或者高级定时器(TIM1和TIM8)。这些定时器的功能很强大,除了基本的功能就是定时,还可以可以测量输入信号的脉冲宽度,可以生产输出波形
不知道大家有没有把自己的代码整理成文档的习惯,有没有给自己的代码一个非常漂亮的注释,就像下图这样。
不知道大家在单片机开发中是如何打印调试信息的,大多数应该是用串口调试打印吧,在大多数的情况下,一般在制板和写代码时都会预留串口1做为调试打印用。
你知道内存是怎么读取数据的吗?知道数据是怎么一个一个字节发送的吗?是低字节先发还是高字节先发?是bit0先发还是bit7先发?是从低地址开始读还是从高地址开始读?看完本篇比应该就明白了~
STM32F429 采用的是 Cortex-M4 内核,内核即 CPU,由 ARM公司设计。ARM 公司并不生产芯片,而是出售其芯片技术授权。芯片生产厂商(SOC)如 ST、TI、Freescale,负责在内核之外设计部件并生产整个芯片,这些内核之外的部件被称为核外外设或片上外设。如 GPIO、USART(串口)、I2C、SPI等都叫做片上外设。
通常我们写代码的时候,尤其是缩进和{}的使用,很多都需要自己手动去调整,如果有一个自动格式化代码的工具,每次编辑完代码,然后一键给将代码格式化,即省时又美观。为了解决这个问题,给大家推荐一个**MDK插件—Astyle**。
不知道小伙伴们点亮过多少板子的LED灯,有很多小伙伴留言说讲一下stm32、fpga、liunx他们之间有什么不同,不同点很多,口说无凭,今天就来点亮一下stm32、fpga和liunx板子的led灯,大家大致看一下点灯流程和点灯环境以及点灯流程,就能大概的了解一下三者的区别,可以有选择的去学习!
作为一个51单片机或STM32单片机的使用者,keil一直是我们的必备的一款工具之一。但keil的一些问题也一直存在,当然也有人用其他的比如STM32CubeIDE。但是今天推荐的是VScode+Keil Assistant插件,不需要很复杂的配置各种文件和环境变量,只需要一个插件即可!可以编译代码和下载程序。
我们在工控软件中,会经常使用到网口和串口,去接受和发送数据。通常我们发送数据的模式有两种,一种16进制,一种是ASCII码。16进制的的经常会用来和仪器PLC等设备通讯。ACSII码是一种文本模式。
大家想过没有我们用keil写单片机的代码,你的函数啊、变量啊最终都放在了哪里?我们一直说的内存五区,到底是哪五区?到底放在芯片的那个地方呢?还有为什么你学完C语言指针和结构体了,32单片机里面的关于结构体指针的内容还是搞不清楚呢?如果你有这些问题,今天就带你研究研究!
一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。
使用 C语言对寄存器赋值时,我们常常要求只修改该寄存器的某几位的值,且其它的寄存器位不变,这个时候我们就需要用到 C 语言的位操作方法了。
取出某一段数据中的某部分数据
CPU:STM32F103RCT6,LQFP64,FLASH:64KB,RAM:20KB flash起始地址为0x8000000,大小为0x10000(16进制)—>65536字节(10进制)—>64KB RAM起始地址为0x2000000,大小为0x5000(16进制)—>20480字节(10进制)—>20KB
我来告诉你他到底有什么秘密,风儿风儿吹风儿风儿吹吹!听说最近太空人智能表盘很火啊,那么如何用C++做一个好玩的智能太空人表盘呢?安排!
前几天在B站发了一个视频,没想到火了。截止目前播放量达到了10.6万,点赞量4700+,评论700+。正如我标题所起的那样,我是一个普通人,而这也仅仅是是一个普通人的大学四年生活罢了。大家的每条评论和私信我都认真看了,今天就以小伙伴的评论和后台私信统一给大家回复一下!希望能对还未毕业的小伙伴有所帮助,如果有不正确或者不同看法请在下方留言区评论留言!
**摘要**:程序中菜单的种类与菜单化程序具有明显的优势,程序的实现方式通常有两种:<u>一种是基于命令行方式,即通过输入指令驱动程序实现相应的功能;二是基于菜单方式,即通过选择不同的菜单实现程序的不同功能。</u>前者的最大缺点是必须精确掌握指令,对操作者而言,它不是十分方便;后者,则只要通过选择不同的菜单项,就可以实现不同的功能,因此,它便于操作,成为程序实现的主流方式。
在单片机开发板上或者是核心板上通常会看到除了MCU之外的的芯片—EEPROM和FLASH,一般是AT24CXX、W25QXX这两颗芯片。但在利用单片机做一些项目的时候,比如做一个小车,驱动一些外设、显示一些温湿度信息等,却发现一般没有用到这些芯片。在做一些显示的时候却会用到。他们与单片机之间的通信方式就是IIC和SPI通信,在单片机的开发中用到的非常多。很多小伙伴就会说了,用OLED来显示一些数据,IIC通信直接用别人的代码,驱动SD卡或者NRF24L01直接拿别人的SPI代码就可以啊,难道我还自己去写驱动吗?
例程:STM32F103系列 I2C软件模拟实验(mini板) 问题:下面两行关于“IO方向”的代码不太明白。
方法1:使用 **use MicroLIB(微库)**,在魔术棒 / Targer 选项页中勾选use MicroLIB(下面代码的13~35行不用写) 方法2:不使用**use MicroLIB(微库)**,就要加入以下全部代码, 以支持printf函数
0.96寸OLED取模教程——字符与图片取模
  最近几年国内机器人开始起步发展,很多高校、中小学都开始进行机器人技术教学。小型的机器人、模块化的机器人、组件式的机器人是教学机器人的首选。在这些机器人产品中,舵机是很关键,使用较多的部件。根据控制方式,舵机应该称为微型伺服马达。早期在模型上使用最多,主要用于控制模型的舵面,所以俗称舵机。舵机接受一个简单的控制指令就可以自动转动到一个比较精确的角度,所以非常适合在关节型机器人产品使用。
>来自**平衡小车之家**,与大家一起学习编码器使用与测速原理。
>这篇教程来自**平衡小车之家**,与大家一起学习直流电机的原理和控制、减速器的作用,并介绍一款直流电机驱动芯片TB6612FNG。
本测试仪以低功耗STM32F407单片机为核心控制器件,利用DDS芯片AD9850和电阻分压电路产生1kHz 30mV正弦信号输入到待测电路,通过采集输入电压Ui和流过输入电阻上电流Ii,算出输入电阻Ri;采集开路电压Uopen和带载电压U1并结合流过负载电阻上的电流Io,算出输出电阻Ro;结合待测电路的工作特性来分析和判断待测电路的故障原因。   实测结果表明,该测试仪能正常输出1KH的正弦波,测得输入电阻为3.2K ohm,输出电阻为1.96K ohm,在输入1KHz正弦信号下,增益为20.3dB,扫描频率可清晰显示该放大电路的幅频特性曲线且测得上限频率为65KHz;改
  今天分享一个项目是做一个红外测温的。这个东西网上都有现成的资料和代码,做起来不难。关于红外测温用的芯片是mlx90614。很巧的是“芯知识学堂”已经将他们的红外测温枪方案全部开源了出来。如果大家想自己做一个红外测温枪可以去看看他们的资料,自己尝试做着玩一下。