
STM32-STM8
文章平均质量分 77
YOYO--小天
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32F10X-中文参考手册2
以上所说的固件库是指“STM32标准函数库”,它是由ST公司针对STM32提供的函数接口, 即API (Application Program Interface), 开发者可调用这些函数接口来配置STM32的寄存器,使开发人员得以脱离最底层的寄存器操作,有开发快速,易于阅读,维护成本低等优点。原创 2025-05-18 17:20:25 · 910 阅读 · 0 评论 -
STM32F10xx 参考手册
我们经常说寄存器,那么什么是寄存器?这是我们本章需要讲解的内容,在学习的过程中,大家带着这个疑问好好思考下,到最后看看大家能否用一句话给寄存器下一个定义。GPIO是通用输入输出端口的简称,简单来说就是STM32可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、 控制以及数据采集的功能。原创 2025-05-17 19:21:40 · 661 阅读 · 0 评论 -
国内知名MCU厂商官网整理
5,锦锐单片机官网 : http://www.cachip.com.cn/News_details/7485319.html。13,应广单片机官网 : https://www.padauk.com.tw/index_cn.aspx。18,笙泉单片机官网:http://www.megawin.com.tw/zh-cn。4,九齐单片机官网 : https://www.nyquest.com.tw/tw。16,赛元微单片机官网 : http://www.socmcu.com/cn/转载 2025-04-23 00:00:15 · 191 阅读 · 0 评论 -
常见摄像头接口USB、DVP、MIPI接口的对比
异步通信的典型特点是没有时钟信号总线,两个设备之间提前约定好速率,通信双方按约定的速率进行传输数据,然后按照指定的格式区分起始信号、数据信号、停止信号。2)不同摄像头方案对摄像头的需求不同,因此在考虑抗干扰能力、分辨率大小、开发成本、设备体积的基础上对摄像头接口进行选型,进而选择合适的摄像头是非常重要的。1)USB、DVP、MIPI 都可以对接摄像头,他们的特点不同,其中 USB 是异步串行接口、MIPI 是同步串行接口、DVP是同步并行串口。SPI 是标准的、常见的外设接口,这里不再赘述。转载 2025-04-17 13:56:20 · 147 阅读 · 0 评论 -
常见信号逻辑电平标准介绍:TTL、CMOS、ECL、LVDS、CML
单端接口具有易于设计和使用的优点,在低于300MHz的场合,单端接口被广泛使用,最基本的单端信号逻辑电平为CMOS、TTL,在此基础上随着电压摆幅的降低,出现LVCMOS、LVTTL等逻辑电平。(3)SSTL和HSTL标准:SSTL即StubSeriesTerminatedLogic标准,分为SSTL_3、SSTL_2、SSTL_18三种,对应不同的供电电压,它与LVTTL和LVCMOS的不同在于SSTL是传输线终端匹配的,因此SSTL具有输器,一般有VCCO=1.8V和VCCO=1.5V两种标准。转载 2025-03-24 09:03:18 · 453 阅读 · 0 评论 -
PCIe设备配置地址空间获取
PCIe中的每一个设备,都会分配自己的内存地址空间,而这个地址空间会被映射到系统的物理内存中,并且最终于虚拟内存进行对应。在这里能够看到ECAM的基地址Base Address,为了方便访问,PCIe使用了BDF(Bus Number,Device Number,Function Number)来构造基于Base Address的地址偏移,在PCIe中,每个配置地址空间都是4096个字节大小,因此PCIe将BDF的地址向左偏移12位,作为地址偏移,下面是ECAM基于BDF 12位偏移后的地址的各位含义。转载 2025-02-06 11:09:56 · 91 阅读 · 0 评论 -
查看PCIe设备的class code
PCI Express (PCIe) 设备的类代码(Class Code)是一个标识符,它指示了设备的主要功能或它所属的通用类别。类代码由三个字节组成,通常以十六进制格式表示,它们分别代表基础类(Base Class)、子类(Subclass)和编程接口(Programming Interface)。另一种方式是通过查看配置空间对应位置的设置,在第11,10,9这三位,这里能够看到对应的也是0x0200000。转载 2025-02-06 11:07:41 · 84 阅读 · 0 评论 -
查看PCIe设备的Header Type
Header Type寄存器:只读寄存器,表示类型,分为PCIe endpoint设备(最低位是0)和PCIe桥(最低位是1),最高位0表示单功能设备,最高位1表示多功能设备,逻辑设备是单功能设备。原文链接:https://blog.youkuaiyun.com/aolitianya/article/details/144182194。#define PCI_HEADER_TYPE_MULTI_FUNC 0x80 // 多功能标志位。// 最高位表示是否多功能。// 低7位表示类型。转载 2025-02-06 11:06:22 · 93 阅读 · 0 评论 -
查看PCIe bridge设备的bus number
也可以通过lspci查看对应设备地址空间的0x18h,0x19h,0x1ah三位来对应primary bus number,secondary bus number和subordinate bus number。原文链接:https://blog.youkuaiyun.com/aolitianya/article/details/144182661。// 偏移 0x1B。// 偏移 0x18。// 偏移 0x19。// 偏移 0x1A。// ... 其他字段 ...// 查找设备所属的桥。转载 2025-02-06 11:04:07 · 69 阅读 · 0 评论 -
USB设备的PID、VID和GUID分别代表什么
GUID 代表全局唯一标识符,它是一种 128 位的标识符,用于唯一标识某个对象。例如,在 Windows 操作系统中,GUID 用于标识设备接口类,以便操作系统和应用程序能够识别和与特定类型的设备进行通信。VID 代表供应商 ID,它是由 USB 实现者论坛(USB-IF)分配给每个 USB 设备制造商的唯一标识符。每个制造商在制造 USB 设备时都会使用自己的 VID,以确保设备的唯一性。在 USB 设备中,PID、VID 和 GUID 是用于标识和管理设备的重要标识符。转载 2025-02-06 10:28:48 · 1685 阅读 · 0 评论 -
预处理命令使用详解----#if、#endif、#undef、#ifdef、#else、#elif
格式:#define 标识符 字符串被替换的字符串在""内int main()还有需要注意的一点是,不管是在某个函数内,还是在所有函数之外(不太建议把#define写在函数内),#define作用域都是从定义开始直到整个文件结尾(这一点和typedef就区别很大)#define(宏定义)----由预处理器来处理typedef----在编译阶段由编译器处理void fun();fun();转载 2025-01-12 15:06:16 · 3001 阅读 · 0 评论 -
C语言中|=,&=,~操作符的应用
这里与我们之前的情况不一样,之前当我们将13|1的时候,是在一堆0里只有1,我们可以直接进行移位之后运算,这里就不行了,我们怎么可以在一堆0里找到0之后参与运算呢,这里我们就需要用到取反操作符了,既然我们可以在一堆0里找到1,那么我们将它们按位取反之后,不就是在一堆1里找0了嘛,然后我们将0再左移之后运算不就好啦。我们想要将这一位再变为0,需要进行与操作,当1与0的时候,那么我们这一位就可以变回为0,有小伙伴要说啦,那么我们直接将29&0可不可以啊,不行!得到结果为15,与我们预期符合,15的二进制为。转载 2024-11-29 14:22:58 · 2354 阅读 · 0 评论 -
STM32中IIC通讯协议
了解了这些基本知识,再回到开头,IIC其只需要两根线控制,一根时钟线(SCL)控制同步,一根数据线(SDA)传输数据,因为只有一根数据线,数据逐个传输,因此是串行通讯。接收应答:主机在发送完一个字节之后,在下一个时钟接收一位数据,判断从机是否应答,数据0表示应答,数据1表示非应答(主机在接收之前,需要释放SDA)发送应答:主机在接收完一个字节之后,在下一个时钟发送一位数据,数据0表示应答,数据1表示非应答。SCL低电平期间,从机将数据位依次放到SDA线上(高位先行),然后释放SCL,转载 2024-11-28 23:58:17 · 100 阅读 · 0 评论 -
STM32-USART通信
既然双设备利用串行双向发送,那么发送和接收肯定要约定好一个频率,主机按照一定频率发送,从机按照一定频率接收,这样子才不会出现丢包、空包。主要的区别在于 USART 具有同步传输的能力,可以通过外部时钟源进行精确的时钟同步,而 UART 只能支持异步传输。在异步模式下,USART不使用时钟信号来同步发送和接收的数据,而是依赖于双方设置的相同波特率。TX与RX要交叉连接,因为对于设备2来说,设备1的发送(tx)就是它的接收(rx),对方同理。USART是一种用于串行通信的设备,可以在同步和异步模式下工作。转载 2024-11-28 23:48:10 · 204 阅读 · 0 评论 -
GPIO的上拉、下拉,无上下拉
按键通常与电源电压(Vcc)连接,在未按下时需要下拉电阻将引脚拉到低电平。按键通常与地(GND)连接,在未按下时需要上拉电阻将引脚拉到高电平。当引脚配置为输入模式时,如果引脚没有连接到其他外部电路,内部上拉电阻会将引脚的电压拉到高电平(逻辑1)。当引脚配置为输入模式时,如果引脚没有连接到其他外部电路,内部下拉电阻会将引脚的电压拉到低电平(逻辑0),未使用的引脚:为确保未使用的引脚处于已知状态,防止其浮动引起干扰,可以将其配置为下拉模式。如果外部电路已经有合适的上拉或下拉电阻,则可以配置引脚为无上下拉模式。转载 2024-11-28 23:38:09 · 1103 阅读 · 0 评论 -
GPIO的中断和事件触发模式:上升、下降沿触发.......
当GPIO引脚检测到电平变化(无论是从低变高还是从高变低)时,生成一个外部事件,但不会打断CPU的正常执行。当GPIO引脚检测到从低电平(逻辑0)变为高电平(逻辑1)时,生成一个中断请求。当GPIO引脚检测到从高电平(逻辑1)变为低电平(逻辑0)时,生成一个中断请求。当GPIO引脚检测到电平变化(无论是从低变高还是从高变低)时,生成一个中断请求。在引脚电平从低变高(上升沿)时触发外部事件,不生成中断请求。在引脚电平从高变低(下降沿)时触发外部事件,不生成中断请求。在引脚电平从低变高(上升沿)时触发中断。转载 2024-11-28 23:35:00 · 911 阅读 · 0 评论 -
串口通信————UART、I2C、SPI详解(总结篇)
当接收UART检测到起始位时,它将以特定的波特率的频率读取(数据传输速度的度量),以每秒比特数(bps)表示。主机将要通信的从机地址发送给每个从机,然后每个从机将其与自己的地址进行匹配比较,如果匹配,他就向主机发送一个低电平ACK位。在不同的时候可以选择使用不同的通信方式去完成一个项目,或者在使用一些传感器的时候,他就是特定的通信方式,所以这些通信方式都要去了解去学习和实现的。使用四根线(I2C使用两根线),没有信号接收成功的确认(I2C由此功能),没有任何形式的错误检查(UART中的奇偶校验位)。转载 2024-11-23 23:20:32 · 1125 阅读 · 0 评论 -
IIC代码波形对照详解
进行数据传输时,在SCL的高电平期间SDA上的电平必须保持稳定,只有在SCL为低电平期间,才允许SDA上的电平改变状态。发送回复是在主机接受完一帧(字节)数据后,回应从机,表示这一帧(字节)数据接收完毕,继续发送下一帧(字节)数据。在SCL保持高电平期间,SDA被释放,由低电平转变为高电平,产生上升沿,称为I2C总线的停止信号,标志着一次数据传输的终止。结合IIC_Start()函数,在发送第一个数据前,SCL已经处于低电平状态,此状态可以变换数据线的数据(高低电平)。转载 2024-11-23 22:57:05 · 701 阅读 · 0 评论 -
软件IIC和硬件IIC的区别————附stm32软件IIC代码
/ IIC地址位数(I2C_AcknowledgedAddress_7bit 或 I2C_AcknowledgedAddress_10bit)uint16_t I2C_Ack;// IIC应答使能(I2C_Ack_Enable 或 I2C_Ack_Disable)// IIC占空比(I2C_DutyCycle_2)GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;// IIC模式(I2C_Mode_I2C)转载 2024-11-23 22:33:44 · 223 阅读 · 0 评论 -
【c语言】.c 和 .h 文件有什么关系?
c文件包含函数实现和变量定义,而.h文件包含函数声明和结构体定义,作为接口供其他模块使用。文中通过LED控制的例子,展示了如何编写和使用.h及.c文件。// 当第一次包含头文件时,头文件保护宏被定义,后续再包含头文件时,头文件保护宏已经被定义,预处理器会直接跳过头文件的内容。// 当一个头文件被多次包含时,预处理器会将该头文件的内容复制到每个包含它的源文件中。在mian.c 或其他文件中导入 led.h 使用定义好的函数。// 如果一个头文件被重复包含多次,就会导致重复定义的问题。转载 2024-11-23 22:08:04 · 1925 阅读 · 0 评论 -
.h文件和.c文件的区别
1]:如果在.h头文件中定义一个全局变量,并将此全局变量赋初值,那么多个.c文件引用此.h头文件时,在预处理阶段会进行相同变量名的拷贝,即:此全局变量会存在于多个.c源文件中,如果在main函数中,对这些.c源文件进行引用,在编译连接阶段会出现重定义的错误。[2]:如果在.h头文件实现一个函数体,那么在多个.c文件中引用它,又同时编译多个.c文件,也会出现上面的问题,在连接阶段发现有多个相同的函数,进而报错。上面说到所有的声明应该写到.h文件中,.c文件中应该写变量的定义,函数的实现;转载 2024-11-23 21:58:08 · 884 阅读 · 0 评论 -
C 语言知识的重新整合
以32位浮点数为例,留给M只有23位,将第⼀位的1舍去以后,等于可以保存24位有效数字,结果会更精确。结果为-124而非132 ,这是因为C语言整型算术运算总是至少以整数类型(int)来进行,表达式中的字符型(char)和短整型(shotr)会在使用时转换为普通整型int / unsigned int,这种转换称之为整型提升。三种方法均有符号位和数值位两部分组成,符号位为0表示负整数,符号位为1表示正整数,其中,符号位为整数二进制表示中的最高位(左边第一个),其余的二进制位都为数值位。转载 2024-11-13 11:20:07 · 78 阅读 · 0 评论 -
【STM32学习】@初学推荐! GPIO的8种工作模式原理详解
这说的是这个电阻起的作用,拉高或低电平)。在STM32中,每个内置外设都有若干个输入输出复用引脚,一般这些引脚的输出端口都是固定不变的,为了更好地安排引脚的走向和功能,在STM32中引入了外设引脚“重映射”的概念,即一个外设的引脚除了具有默认的IO口外,还可以通过设置重映射寄存器的方式,把这个外设的引脚映射到其它的端口。输出控制器输入高电平时,此时N-MOS管关闭,由于没有P-MOS,它无法直接输出高电平,则P-MOS管和N-MOS管都关闭,所以引脚既不输出高电平,也不输出低电平,为高阻态(相当于断开)。转载 2024-11-13 09:26:59 · 294 阅读 · 0 评论 -
单片机学习笔记——IO端口
0000000000原创 2022-09-07 02:29:40 · 1014 阅读 · 0 评论 -
单片机IO端口定义-STC单片机IO端口属性,IO端口初始值,快捷定义
0000000000000转载 2022-09-07 02:24:52 · 4259 阅读 · 0 评论 -
单片机 #define 宏函数实现printf打印log
00000000000000000000原创 2022-09-06 00:48:35 · 1694 阅读 · 0 评论 -
51单片机
51单片机笔记原创 2022-08-29 22:33:44 · 576 阅读 · 0 评论 -
单片机I/O口详解
单片机I/O口详解原创 2022-08-01 14:12:34 · 2647 阅读 · 0 评论 -
嵌入式硬件入门——Flash Memory(W25Q64+SPI协议)
嵌入式硬件入门——Flash Memory(W25Q64+SPI协议)转载 2022-07-31 13:47:29 · 6327 阅读 · 0 评论 -
嵌入式硬件入门——EEPROM(AT24C02+I2C协议)
嵌入式硬件入门——EEPROM(AT24C02+I2C协议)转载 2022-07-31 13:11:57 · 9826 阅读 · 0 评论 -
单片机定时器模拟PWM输出(三款代码介绍)
单片机定时器模拟PWM输出(三款代码介绍)转载 2022-07-31 11:35:53 · 4198 阅读 · 0 评论 -
51单片机通过串口打印调试信息
1、实验目的有时候单片机程序运行的时候我们不知道当前程序行某个变量的数据是多少,我们想像学习C语言的时候,打印出来信息,比如变量的值等等。这里就是起到这个调试作用。但是,要注意变量范围。是全局变量,还是局部变量等。如果用模块化编程,串口在其他文件中,还需要进行代码的引用等。2、实验原理和步骤.2.1原理利用stc89C52的单片机的串口发送数据到电脑的串口助手中,打印出来信息;这里如果换没学到串口的知识,那么可以跳过,或者简单学习下串口的知识。直接调用一个函数就行,这个函数是利用51单片机的定时转载 2022-05-13 00:41:56 · 4628 阅读 · 0 评论 -
C51编程
111111转载 2021-12-05 17:41:25 · 1702 阅读 · 0 评论 -
51 单片机 程序编写
000000原创 2021-12-05 16:52:01 · 10346 阅读 · 1 评论 -
keil C51 常见错误和警告
00000000000转载 2021-11-27 00:15:20 · 19833 阅读 · 0 评论 -
两个51单片机之间进行串行通信
0000000转载 2021-11-24 00:37:58 · 9159 阅读 · 2 评论 -
关于keil C51 案例 加入头文件
000000000000转载 2021-11-24 00:14:57 · 7038 阅读 · 0 评论 -
keil C51 以流水灯为例 mian.c ;led.c ;led.h 多文件编程
0000000转载 2021-11-23 23:58:54 · 4095 阅读 · 0 评论 -
keil如何添加h文件_KEIL 那些编辑技巧与方法
0000转载 2021-11-23 22:37:51 · 15128 阅读 · 0 评论 -
keil C51使用printf函数
00转载 2021-11-23 22:25:33 · 2306 阅读 · 0 评论