- 博客(73)
- 收藏
- 关注
原创 Verilog代码实例
本文主要介绍了Verilog代码的基础内容和应用实例。以上就是今天要讲的内容,本文仅仅简单介绍了Verilog代码的基础内容和应用实例。
2025-02-07 22:48:50
1436
原创 Verilog语言学习总结
在FPGA设计里面,Verilog语言可以对大规模的电路和复杂的逻辑电路进行设计,且目前Verilog已经在FPGA开发/IC设计领域占据绝对的领导地位。本文就介绍了Verilog语言的基础内容。Verilog是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。1.2Verilog和C的区别。
2025-01-28 08:00:00
2123
原创 STM32 硬件I2C读写
本文介绍了硬件I2C读写,硬件I2C读写和软件I2C读写的区别就在通信的底层。之前软件I2C读写博文中的代码逻辑是手动翻转引脚电平来实现I2C软件通信,用硬件来实现I2C通信就可以将引脚电平翻转的工作交给硬件来完成。以上就是今天要讲的内容,本文仅仅简单介绍了硬件I2C读写初始化配置以及一些配置代码的细节。
2025-01-21 20:00:00
1225
1
原创 STM32 I2C通信协议
I2C总线可以按照硬件规定来连接线路;用软件规定来操作总线,以此实现指定位置写寄存器和指定位置读寄存器。有了这两个功能主机就可以完全掌控外挂模块的运行了,也就实现了设计这个协议的目的。
2024-12-28 19:45:29
1397
原创 STM32 USART串口数据包
本文介绍了串口数据包收发的思路和流程。以上就是今天要讲的内容,本文仅仅简单介绍了接收数据包的思路。t=O83ASTM32 USART串口发送+接收_配置stm32的usart串口参数,编写程序实现数据的发送和接收-优快云博客https://blog.youkuaiyun.com/Echo_cy_/article/details/143817933。
2024-12-01 20:49:37
1553
原创 STM32 USART配置库函数
单片机学习!一、USART配置函数1.1 USART_DeInit函数USART_DeInit函数将外设 USARTx 寄存器重设为缺省值。1.2 USART_Init函数USART_Init函数根据 USART_InitStruct 中指定的参数初始化外设 USARTx 寄存器。该成员设置了USART传输的波特率,波特率可以由以下公式计算:提示了在一个帧中传输或者接收到的数据位数。定义了发送的停止位数目。USART_Parity 定义了奇偶模式。
2024-11-25 00:30:00
1213
原创 STM32 USART串口外设
之前博文介绍了串口协议,本文接下来就介绍STM32的USART外设的基础内容。USART(Universal Synchronous/Asynchronous Receiver/Transmitter)通用同步/异步收发器USART是STM32内部集成的硬件外设,可根据数据寄存器的一个字节数据自动生成数据帧时序,从TX引脚发送出去,也可自动接收RX引脚的数据帧时序,拼接为一个字节数据,存放在数据寄存器里自带波特率发生器,最高达4.5Mbits/s。
2024-11-18 19:36:59
2409
原创 STM32 USART串口协议
在STM32中,集成了很多用于通信的外设模块,比如 USART 、I2C、SPI、CAN 和 USB。本文就主要介绍其中一种,USART串口的基础内容。以上就是今天要讲的内容,本文仅仅简单介绍了串口通信在硬件电路上的通信协议和软件上数据传输的内容。总结一下就是,TX引脚输出定时翻转的高低电平,RX引脚定时读取引脚的高低电平。每个字节的数据加上起始位、停止位、可选的校验位打包成数据帧,依次输出在TX引脚,另一端RX引脚依次接收。这样就完成了字节数据的传递,这就是串口通信。
2024-10-24 22:22:53
1111
1
原创 STM32 DMA数据转运
本文介绍了DMA初始化配置、DMA数据转运的基础内容。以上就是今天要讲的内容,本文仅仅简单介绍了DMA初始化配置以及一些配置代码的细节。
2024-06-17 00:15:00
1562
原创 STM32 DMA直接存储器存取
DMA是一个转运数据小助手,它主要是用来协助CPU完成数据转运的工作。本文就介绍了DMA的基础内容。DMA(Direct Memory Access)直接存储器存取。DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源。12个独立可配置的通道: DMA1(7个通道), DMA2(5个通道)。每个通道都支持软件触发和特定的硬件触发。STM32F103C8T6 DMA资源:DMA1(7个通道)。DMA内部的多个通道,可以进行独立的数据转运;
2024-05-01 23:31:18
1513
原创 STM32 DA数字模拟转换原理
之前文章讲述了STM32中AD模拟数字转换器的内容,文中AD原理中涉及DA原理的内容。本文就介绍了DA数字模拟转换的基础内容。以上就是今天要讲的内容,本文仅仅简单介绍了DA数字模拟转换的原理和DA原理所涉及的一些电路知识。
2024-04-22 01:30:00
1929
原创 C语言tip 字面串存储
C语言把字面串作为字符数组来处理。当C语言编译器在程序中遇到长度为n的字面串时,它会为字面串分配长度为n+1的内存空间。这块内存空间将用来存储字面串中的字符,以及一个用来标志字符串末尾的额外字符(空字符)。字面串 "abc" 是作为有4个字符的数组来储存的:a、b、c、\0。字面串是作为数组来存储的,编译器会把它看作 char * 类型的指针。字符串" "作为单独一个空字符来存储。是一个所有位都为0的字节,因此用转义序列 \0 来表示。注: ' \0 ' 与 ' 0 ' 不同。
2024-03-25 20:49:49
229
原创 STM32 AD多通道函数设计
之前博文介绍AD单通道函数设计的基础内容,本文在之前博文的基础上做一修改,用简单的方法实现AD多通道函数设计:利用单次转换,非扫描的模式来实现AD多通道的设计。这样只需要在每次触发之前手动更改一下列表第一个位置的通道就行,如第一次转换,先写入通道0,之后触发、等待、读值;第二次转换,先把通道0改成通道1,之后触发、等待、读值;第三次转换,再改为通道2,之后触发、等待、读值,以此类推。这样在转换前先指定一下通道,再启动转换就可以简单轻松地实现多通道转换的功能了。
2024-03-25 20:21:36
1452
原创 STM32 AD单通道函数设计
本文介绍AD单通道函数设计的基础内容。调用一次这个函数块就相当于执行了一次图单次转换,非扫描模式的流程。以上就是今天要讲的内容,本文仅仅简单介绍了AD单通道函数设计的步骤和代码含义。
2024-03-22 16:55:01
1595
原创 STM32 ADC数模转换器
GPIO只能读取引脚的高低电平,只有两个值:高电平或低电平。而ADC可以对高电平和低电平之间的任意电压进行量化,最终用一个变量来表示。读取这个变量就可以知道引脚的具体电压是多少。ADC好比一个电压表,可以把引脚的电压值测出来,放在一个变量里。ADC(Analog-Digital Converter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC,1us转换时间。
2024-03-12 21:35:19
5022
原创 STM32 编码器接口测速
如何用编码器旋转控制CNT自增自减,本文介绍编码器接口测速的配置步骤。以上就是今天要讲的内容,本文仅仅简单介绍了编码器接口测速配置步骤、需要用到的库函数以及具体参数配置。
2024-03-07 08:37:31
3205
原创 STM32 TIM编码器接口
本文介绍通过定时器的编码器接口来自动计次。之前博文介绍过通过触发外部中断,在中断函数里手动进行计次。编码器接口自动计次与触发外部中断手动计次相比较而言,使用编码器接口的好处就是节约软件资源。如果使用外部中断计次,当电机高速旋转时,编码器每秒产生上千上万个脉冲,程序就得频繁进中断。进中断之后,完成的任务又只是简单的加一减一,软件资源就被这种简单而又低级的工作给占用了。所以对于这种需要频繁执行且操作又简单的任务,一般都会设计一个硬件电路模块来自动完成。
2024-03-04 16:46:48
2826
原创 STM32 PWMI模式测频率占空比
博文介绍如何配置输入捕获电路来测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数。以上就是今天要讲的内容,本文仅仅简单介绍了配置输入捕获电路来测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数。
2024-02-26 08:37:40
2923
1
原创 STM32 输入捕获模式测频率
博文介绍如何配置输入捕获电路来测量频率。以上就是今天要讲的内容,本文仅仅简单介绍了输入捕获的配置步骤和注意事项。
2024-02-19 09:21:55
4249
3
原创 STM32 TIM输入捕获测频率占空比库函数
TIM_GetCapture1、TIM_GetCapture2、TIM_GetCapture3、TIM_GetCapture4函数读取4个通道的CCR,这四个函数和TIM_SetIC1Prescaler、TIM_SetIC2Prescaler、TIM_SetIC3Prescaler、TIM_SetIC4Prescaler四个函数是对应的,读写的都是CCR寄存器。选择输入触发源TRGI,对应主从触发模式图中的从模式触发源选择,调用这个函数就能选择从模式的触发源了,如TI1FP1等。
2024-02-19 08:42:51
2478
原创 STM32 TIM输入捕获
输入捕获用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数。IC(Input Capture)输入捕获输入捕获模式下,当通道输入引脚出现指定电平跳变时,当前CNT的值将被锁存到CCR中,可用于测量PWM波形的频率、占空比、脉冲间隔、电平持续时间等参数每个高级定时器和通用定时器都拥有4个输入捕获通道可配置为PWMI模式,同时测量频率和占空比可配合主从触发模式,实现硬件全自动测量1和2两部分加起来是输入捕获的电路,2和3两部分加起来是输出比较的电路。
2024-02-05 11:54:24
5485
4
原创 C语言代码 编写函数不允许创建临时变量,求字符串的长度
(3)上一个代码中函数创建了临时变量 count ,那么如何设计一个函数不创建临时变量的条件下还可以求出字符串长度。srtlen 库函数用来返回字符串长度(不包括结尾的“\0”)。(2)然后来编写一个函数,求字符串的长度,也就是模拟实现 strlen 函数。在上一个函数的基础上,去掉变量 count ,用上一篇函数递归博客(= '\0' 条件下返回 0,是函数递归的限制条件。(1)首先来编写一个求字符串长度但不编写自定义函数的代码。这里运用了函数的传址调用,详见。)中的方法来设计递归的思路。
2024-01-29 09:14:30
931
原创 STM32 引脚重映射
STM32单片机中片上外设的端口可以借指定GPIO口来输出,也就是引脚复用。但是当指定端口输出冲突了,没法同时使用时怎么办呢?本文介绍问题的解决办法:引脚重映射。
2024-01-29 09:00:19
8016
原创 STM32 PWM驱动设计
PWM本质是利用面积等效原理来改变波形的有效值。一、PWM驱动配置步骤第一步、RCC开启时钟,将需要的TIM外设和GPIO外设的时钟打开。第二步、配置时基单元,包括时钟源选择的配置。第三步、配置输出比较单元,包括CCR的值、输出比较模式、极性选择、输出使能这些参数。(在库函数中也是用结构体统一来配置)。第四步、配置GPIO,把PWM对应的GPIO口初始化为复用推挽输出的配置。第五步、运行控制,启动计数器就可以输出PWM了。以上就是今天要讲的内容,本文仅仅简单介绍了PWM驱动配置。
2024-01-27 20:14:38
2881
1
原创 STM32 PWM驱动常用库函数
本文主要分类归纳了一些常用的PWM驱动常用库函数。以上就是今天要讲的内容,本文仅仅简单介绍了PWM驱动常用库函数。
2024-01-23 10:13:55
3106
原创 STM32 TIM输出比较、PWM波形
STM32定时器的输出比较功能,它主要用来输出PWM波形,而PWM波形是驱动电机的必要条件。输出比较可以通过比较CNT与CCR寄存器值的关系,来对输出电平进行置1、置0或翻转的操作,用于输出一定频率和占空比的PWM波形。
2024-01-15 08:58:09
4466
原创 C语言 结构体
将多个数据的集合对应到程序中时,最好在将其聚合后再对应。结构体表示任意类型的数据的集合,最适合用来实现这种结构的数据。结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。
2024-01-08 08:40:54
1810
原创 C语言 指针学习总结
指针是内存中一个最小单元的编号,也就是地址。平时口语中说的指针,通常指的是指针变量,是用来存放内存地址的变量。以上就是今天要讲的内容,本文介绍了指针的内容。
2024-01-02 17:23:54
2534
1
原创 C语言 指针初阶
上一篇博文C语言 指针-优快云博客简单介绍了指针,本篇文章是对指针内容的补充。以上就是今天要讲的内容,本文仅仅简单介绍了指针和数组、二级指针、指针数组的内容。
2024-01-01 11:40:36
1036
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人