• 2025-01-21EDMA3学习笔记1
    1.1  EDMA3简介EDMA3(EnhancedDirectMemoryAccess3):增强型直接存储器访问的控制器。它是DSP中一个高级数据传输引擎,其结构适合数据的高速传输,可以在没有CPU主要参与的情况下,由控制器完成数据转移,主要服务外部内存(DDR)、片上内存(L2SRAM)以及串口外设等。EDMA3控制器主要由两
  • 2025-01-18UART
    UART1.理论知识1.1通讯常见概念串行通信和并行通信分别指什么?串行通信是按位传输,一次传输一位。并行同学是多位同时传输。串行通信并行通信通信距离远近抗干扰能力强弱传输速率弱高成本低高单工、半双工和全双工的区别。三者主要是描
  • 2025-01-18STM32单片机的学习总结
    从计算机基础、寄存器知识、汇编指令、中断以及各外设驱动的开发,单片机底层经过这段时间的学习做一个总结。计算机组成计算机由输入设备、输出设备、控制器、运算器、存储器组成,存储器分为外部存储器、内部存储器、高速缓存、寄存器,在单片机底层开发中,主要使用寄存器对某一地
  • 2025-01-16i2ctransfer
    i2ctransferi2ctransfer是一个在Linux系统上通过I2C总线与设备通信的工具,它通常用于执行低级的I2C数据传输。这个命令允许用户通过I2C总线进行读取和写入操作。它是i2c-tools包的一部分,通常用于调试和与I2C设备进行交互。提示:i2c通信失败可以参考《rk356
  • 2025-01-16GPIO通用输入输出
    1、GPIO:I/O口,8种输入输出模式,引脚电平0-3.3V,带FT的可以容忍5V2、输入模式可读取端口的高低电平:读取按键输入、外接模块电平信号,ADC电压采集,模拟通信协议接收数据3、输出模式可以控制端口输出高低电平,驱动LED,控制蜂鸣器,模拟通信协议输出时序;3、GPIO构造:(寄存器的低16位对应端
  • 2025-01-15U-Boot启动流程详解
    一、第一部分要分析uboot的启动流程,首先要找到“入口”,找到第一行程序在哪里。程序的链接是由链接脚本来决定的,所以通过链接脚本可以找到程序的入口。打开u-boot.lds文件看到第三行,可以发现_start是代码的入口点。ENTRY(_start)_start在文件arch/arm/lib/vectors.S中有
  • 2025-01-14GPIO
    GPIO1.基本定义和概念IO复用:同一个IO引脚具备多个不同的功能;IO重映射:当出现功能引脚冲突时,讲功能移动到到备用引脚上;通用和复用的区别:通用表示直接控制,复用表示其他功能模块托管(片上外设)使用;通用输入输出(GPIO,GeneralPurposeInput/Output):具有八种各种模式。分别是:(1)输入
  • 2025-01-14STM32单片机芯片与内部74 USB 简介 控制器 通用寄存器 端点寄存器 缓冲区描述表
    目录一、USB简介二、STM32USB控制器三、通用寄存器1、USB控制寄存器(USB_CNTR)2、USB中断状态寄存器(USB_ISTR)3、USB帧编号寄存器(USB_FNR)5、USB设备地址寄存器(USB_DADDR)6、USB分组缓冲区描述表地址寄存器(USB_BTABLE)四、端点寄存器1、USB端点n寄存器(USB_EP
  • 2025-01-13《STM32开发:深入解析 TIM2->CCR2 与 TIM2.CCR2 的区别与应用》
    前言在最初学习STM32的过程中,由于知识不进脑子,经常边学边忘,并且C语言学习的也比较浅,涉及到指针地址等方面的知识,内心就有点排斥。第一次遇到->和.这两种操作符时,我只是知道按照示例“照着用”,但并不清楚它们之间的具体区别,也没有深入理解它们的内在逻辑。这样的学习方
  • 2025-01-13《ARM Cortex - M3与Cortex - M4权威指南》第8章深入了解异常处理详解
    8.1简介8.1.1关于本章本章主要聚焦于ARMCortex-M3与Cortex-M4处理器中异常处理的深入知识。旨在让读者全面理解异常处理机制,包括异常处理的实现方式、栈帧的管理以及异常流程中的各种细节,这些知识对于开发高效、可靠的基于这两款处理器的嵌入式系统至关重要。8.1.
  • 2025-01-12libmodbus从机回应
    文章目录一、modbus_mapping_new_start_address函数**函数原型****参数说明****功能描述****工作原理****返回结构体:`modbus_mapping_t`****示例代码****错误处理****总结**二、modbus_reply函数**函数原型****参数说明****功能描述****错误处理****返回值****Modbus
  • 2025-01-10局部变量是存储在寄存器吗
    局部变量并不一定存储在寄存器中。局部变量通常存储在栈上,但编译器可以根据优化级别和具体情况决定是否将某些局部变量放入寄存器中。以下是一些详细信息:1.局部变量存储位置栈:局部变量通常在函数调用时分配在栈上。栈是一个后进先出(LIFO)的数据结构,用于存储函数的局部变量、返
  • 2025-01-09NRF24L01模块STM32-调试心得:报错 1E
    前言环境:芯片:STM32F103C8T6Keil:V5.24.2.0调试时我们会尝试读取STATUS寄存器状态来了解模块目前的状态,但是我们在读取时至为0x1E,这就很纳闷,根据寄存器描述0x1E:对应寄存器4:1,关系有:达到最大重发次数        RXFIFO为空,第四位很好理解也
  • 2025-01-09UART异步串行通信协议
    UART概述UART的定义USART指通用同步收发器,UART指通用异步收发器这些通用收发器提供了一种灵活的方式与外部设备进行单工/半双工/全双工方式的数据交互,并且可选择多种波特率,支持多种通信协议和功能模式等UART的类别STM8S单片机片内总共有3个串口资源:UART1/2/3(STM8S105则只
  • 2025-01-0912位可编程非接触式电位计(AS5600)的介绍
    目录概述1. AS5600介绍1.1芯片介绍1.2主要性能1.3芯片结构框图1.4芯片封装和引脚定义2I2C操作AS56002.1地址信息2.2读数据时序3主要寄存器介绍 3.1配置寄存器3.2 输出寄存器3.3  状态寄存器4编程操作4.1 通过i2c接口进行角度编程4.2 通过OU
  • 2025-01-08Modbus-RTU实用详解
    0简介        Modbus,作为一种串行通信协议,由施耐德电气(前身为Modicon公司)在1979年发布,旨在支持可编程逻辑控制器(PLC)之间的通信。自那时起,Modbus已经成为工业界通信协议的标杆,并且如今广泛应用于各种工业电子设备间的连接。        关于这一重要的工业通信协
  • 2025-01-06操作系统之内存管理应该实现的功能
    目录一、引言二、内存空间的分配与回收三、内存空间的扩充覆盖技术交换技术四、内存保护与共享内存保护内存共享五、虚拟存储技术一、引言传统存储管理方法,包括内存空间的分配与回收、地址转换,以及内存扩充技术,并在此基础上引出现代虚拟存储技术。二、内存空间
  • 2025-01-05《汇编程序语言》第11~15章
    第十一章输入输出程序设计键盘输入(BIOS中断调用);数据段定义DATASEGMENT;预留一个字节用于存储读取的字符INPUT_CHARDB?DATAENDS;代码段定义CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATA;将数据段地址加载到AX寄存器
  • 2025-01-05《8086/8088汇编语言程序设计》16~17章
    第十六章8087/80287/80387程序设计协处理器概述介绍8087、80287和80387作为80x86系列微处理器的协处理器,其主要功能是协助主处理器进行浮点运算,大幅提升计算机系统在处理复杂数学计算时的性能。阐述它们在不同时期计算机系统中的地位和应用场景。8087/80287/80387的体系
  • 2025-01-05《汇编程序语言》第6~10章
    以下是对《汇编程序语言》中这几章内容的详细介绍:第六章循环结构程序一、循环结构概述概念:循环结构允许程序在满足特定条件时,重复执行一段代码。这在需要多次执行相同或相似操作的场景中非常有用,例如对数组的每个元素进行处理,或者进行多次迭代计算。通过循环结构,可以避
  • 2025-01-05第15章 汇编语言--- 数组与指针
    汇编语言是一种低级编程语言,它几乎与特定的计算机架构一一对应。在汇编语言中,数组和指针的概念不像在高级语言(如C或C++)中那样直接存在,但可以通过对内存地址的操作来实现类似的功能。在汇编语言中,数组可以被看作是一系列连续存储的相同类型的元素,而指针则是用来存放某个变量
  • 2025-01-05PCIe扫盲——Base & Limit寄存器详解
    上一篇文章介绍了Type0型配置空间Header中的BAR的作用和用法,但是PCIe中的桥设备(Switch和Root中的P2P)又是如何判断某一请求(Request)是否属于自己或者自己的分支下的设备的呢?(定义范围)这实际上是通过Type1型配置空间Header中的Base和Limit寄存器来实现的,这篇文章来进行简单地介绍一下
  • 2025-01-04自己动手写CPU - 1
    电脑,手机,单片机,都有一个核心部件:CPU.今天开始学verilog,就尝试一下动手写一个可以工作的CPU.目标就是可以计算从1加到10等于几?分析一下,大概需要几个指令:LdrAddSubCmpJmp第一步,先写一个运算部件:ALU.modulealu0(input[3:0]op,input[7:0
  • 2025-01-04C语言的其他关键字
    数据类型enum枚举,为一个变量定义一组命名的整数常量,或者更简单点就是给一组变量(一般是相关的)起一个统一的名字,这一组变量在其中就会有一个对应的整数常量,从0开始依次递增,也可显式指定,之后的依次递增,可以用这个名字.变量名的格式进行使用,对应的整数值主要是为了内部表示和可能
  • 2025-01-04GICv2与GICv3中断架构对比与LPI中断机制分析
    往期内容本文章相关专栏往期内容,PCI/PCIe子系统专栏:嵌入式系统的内存访问和总线通信机制解析、PCI/PCIe引入深入解析非桥PCI设备的访问和配置方法PCI桥设备的访问方法、软件角度讲解PCIe设备的硬件结构深入解析PCIe设备事务层与配置过程PCIe的三种路由方式PCI驱动与