- 博客(14)
- 收藏
- 关注
原创 SPI总线解析
SPI总线由SCK,MISO,MOSI,SS四线构成,是一种全双工同步通信总线。主机和从机都有一个串行移位寄存器,主机通过自己的串行移位寄存器写一个字节来发起传输。根据极性和相位的不同有4种工作模式,数据传输期间数据线根据极性和相位的设置在时钟线SCL在不同的边沿输出或采样数据。
2023-06-03 22:37:59 3549 2
原创 IIC总线解析
STM32的硬件IIC的发送和接收时序和软件IIC中的发送和接收数据时序是完全相同的,只不过硬件IIC设置了许多的标志位,通过这些标志位的改变来自动实现时序的推进。IIC总线是由数据线SDA和时钟线SCL构成的同步串行半双工总线,每一位数据都要由一个时钟脉冲进行对应,当时钟周期为低电平时,数据是不能被传输的。IIC总线空闲时,数据线SDA和时钟线SCL都为高电平,只有总线空闲时,主机才能使用IIC总线收发数据。数据传输期间,时钟SCL为高电平则SDA必须保持稳定,只有在SCL为低电平时才允许SDA变化。
2023-06-02 20:57:12 1662
原创 STM32F1 USART解析
总线是指微机系统、智能仪器内部已经相互之间传递信息的公共通路,是芯片内部模块之间、器件之间、系统之间的实际互联线。为例使总线能够有效、可靠地进行信息交换,必须对总线信号、传送规则以及传输的物理介质等做出一系列规定,这些规定被称为总线协议或总线规则。芯片总线连接片内各模块的通道,用于模块之间的信息传输。微控制器的片内总线大都采用并行的单总线结构(分时复用)系统总线(也称为内总线)微控制器系统或智能仪器内部各模块、各器件之间传送信息的通道。
2023-05-15 22:13:15 1545
原创 STM32F1 定时器解析
PWM控制就是对脉冲的宽度进行调制的技术,即通过一系列脉冲宽度进行调制,来等效地获得所需要的波形(含形状和幅值)。PWM控制的基本原理是面积等效原理,芯片输出的TTL电平只有高电平和低电平,如果要获得一个介于二者之间或者其他数值的电平时就需要用到PWM技术,可以通过改变高电平所占整个电平周期的时间来实现。高电平所占整个电平周期的时间称为占空比,也就是说可以通过改变占空比来获得需要的波形,电平波形的有效值就是需要获得的电平值。
2023-04-27 20:06:16 4848
原创 变量的存储类别
(1)自动变量:可以显式定义也可以隐式定义(2)静态变量:显式定义(3)外部变量:只能隐式定义,在需要时可以用关键字extern声名其为外部变量类别如何识别3种变量:在函数内部定义没有存储类别标识符的或带有auto标识符变量的为自动变量;在函数外部定义没有static标识符的或带有extern标识符的变量是外部变量;有static标识符的是静态变量。(1)自动变量:动态存储区(2)静态变量:静态存储区(3)外部变量:静态存储区。
2023-04-08 22:08:24 412
原创 STM32F1 ADC解析
AD转换是STM32应用中常用的一部分,通过对8位的AD转换芯片工作过程的熟悉后,类比到STM32 的12位ADC,这样一来STM32的ADC将会看起来简单许多。主要的是理解逐次逼近型ADC在转换过程中逐次逼近的转换过程。STM32 ADC工作框图可总结为上图所示,经通道选择器输入后到达AD转换器进行数据转换,转换后的结果输入到数据寄存器中。转换结束标志EOC可触发ADC中断,若配置模拟看门狗,当采集到的电压超出阈值,会触发看门狗中断。触发转换有多个来源。
2023-04-07 17:04:17 7007 1
原创 C语言的位运算
位运算是C语言的一大特色,通过位运算可以实现一些底层操作。在单片机编程中也有很多时候会运用到C语言的位运算。要熟悉每一种位运算的规则以及其能实现的功能。“&”运算:通常用来对某些位清零或保留位“|”运算:可用于将数据的某些位置1“^”运算:可以实现某操作数的其中几位翻转,也可用来实现两个数的交换“<<”运算:可代替乘法使用,但要注意其条件还需要区分的一点就是“&&”和“&”、“||”和“|”,不要将逻辑与和位与、逻辑或和位或弄混。注意“>>”运算时高位的补位方式。
2023-04-04 21:58:02 1392
原创 STM32 的中断解析
中断是STM32的一个重要应用,理清中断的过程和配置方法更有利于后续的系统学习。STM32中断过程大致可如图所示,各中断源将中断信号交NVIC处理后送入CPU,CPU响应各个中断源。
2023-04-03 19:53:47 1578
原创 STM32F1 GPIO解析
在4种输入模式中,浮空输入模式、上拉输入模式、下拉输入模式3个模式相似。若不接上拉电阻和下拉电阻就为浮空输入模式;只接上拉电阻就是上拉输入模式;只接下拉电阻就是下拉输入模式。浮空输入模式对比上拉输入模式和下拉输入模式:浮空输入模式在没有外部信号输入时其电平不确定,容易受外部干扰信号的影响,上拉输入模式/下拉输入模式由于接入了上拉电阻/下拉电阻其电平在没有输入信号时就会表现为高电平/低电平。模拟输入模式对比浮空输入模式、上拉输入模式和下拉输入模式。
2023-04-01 22:17:35 1992
原创 C语言数据结构(3)——指针类型
数据类型 * 指针变量名其中:“ * ”表示其后的变量名为指针类型;“数据类型”是定义指针变量所指向的目标变量的数据类型,也可称为指针变量的基类型。指针是C语言中重要的一部分,是C语言的一大特色。学好指针要理清变量的两个物理意义,变量的地址和变量的内容,指针变量也是一样也有其变量地址和变量内容,不过指针变量的变量内容是其他类型变量的地址,在引用指针变量时就是间接的存取指针变量所指向的变量内容。
2023-03-29 22:57:18 1037
原创 STM32 时钟树解析
stm32时钟树咋一看是一个十分庞大的系统,但将其拆分开,各个部分的功能理清楚后,它的脉络将会很清晰,就是从左侧时钟源开始,经倍频、分频和一系列控制开关,逐步获得微控制器的系统内核、各级总线、各种外设的时钟信号。时钟是嵌入式学习中重要的一部分,有人觉得它可有可无并且又看不到,但只有掌握了它才可以更清楚的了解stm32芯片内部的运行过程,打好基础才能学得更好。
2023-03-28 22:07:50 3366 1
原创 C语言数据类型(2)——构造数据类型
数据类型 数组名[常量表达式];“数据类型”: 是数组元素的数据类型。“数组名”: 遵循C语言标识符规则。“常量表达式”:表示数组中有多少个元素,即数组的长度。它可以是整型常量、整型常量表达式或符号常量。定义了一个一维数组a,int表示数组中a中的每一个元素都是整型的,数组名为a,此数组有5个元素。
2023-03-27 15:26:01 1985
原创 哈佛结构与冯诺依曼结构(含STM32系统结构解析)
首先区分二者最本质的是看存储器,若数据存储器和程序存储器分开则为哈佛结构,反之则为冯诺依曼结构。因为只有一个存储器,而同一存储器中的数据宽度必然相同,所以冯诺依曼结构的程序指令和数据的宽度相同。而哈佛结构有两个存储器,不同的存储器的数据宽度可以不同,所以哈佛结构中指令和数据有不同的数据宽度。执行效率方面,哈佛结构的执行效率要高于冯诺依曼结构。冯诺依曼结构指令和数据是共享一根总线,这就意味着在执行命令时,冯诺依曼结构要先通过总线读取指令,读取完成后再根据指令对数据进行操作。
2023-03-22 15:32:36 7752
原创 C语言数据类型(1)——基本数据类型及转换
C语言提供了多种的数据类型供使用者使用,不同的类型用于不同的运算目的,各种数据类型在提供了便利以外也带来了一些麻烦。所以我们在进行编程时要选择正确的数据类型,若选用不正确将会使程序编译出错、运行结果不正确或一些其他的问题。故在编程中重要的一步就是选择正确的数据类型,这点很重要。
2023-03-20 19:31:39 1025 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人