在配置外部中断的时候,打开GPIO时钟的时候,也同时打开了AFIO的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO,ENABLE);AFIO简单来说MCU有对外管脚,包括CPU的管脚和内置外设(PWM,TIM,ADC……)的管脚;他们都需要对外接口IO,但是管脚总数是有限的,有的管脚既作为普通IO,也作为外设IO,有时候甚至好几个内置外设共用一个IO,这就是管脚复用现象。比如随便一个管脚的原理图上:PA2/USART2_TX/ADC123_IN2/TIM5_CH3/TIM2_CH3表明这个管脚除了作为普通PA2
一、接口介绍1.1HAL_I2C_Mem_Write()参数1:I2C句柄,如&hi2c1;参数2:从机设备地址(呼叫),如陀螺仪,写为0xD0(...0);参数3:从机寄存器地址(具体的读写位置);参数4:从机寄存器地址长度,I2C_MEMADD_SIZE_8BIT或I2C_MEMADD_SIZE_16BIT;参数5:发送的数据的起始地址(写入什么);参数6:传输数据的大小如1代表1字节;参数7:操作超时时间如0x10...。1.2HAL_I2C_Mem_Read()参数2:如陀螺仪,读为0xD1(...1);参数5:读到哪里二、实验代码(注释很重要)uint8_tSenddata0x00=
🌈个人主页:SarapinesProgrammer🔥 系列专栏:《机组|模块单元实验》⏰诗赋清音:云生高巅梦远游,星光点缀碧海愁。山川深邃情难晤,剑气凌云志自修。目录一、实验目的二、实验要求三、实验说明四、实验步骤实验一不带进位位逻辑或运算实验实验二不带进位位加法运算实验实验三 带进位的加法运算实验实验四 数据输入通用寄存器实验五 寄存器内容无进位位左移实验实验六 寄存器内容无进位位右移实验实验七 32位ALU实验实验八 32位寄存器实验实验九 32位寄存器组实验实验十 32位程序计数器PC实验 实验十一 中断控制实验📝总结一、实验目的1、掌握运算器的数据传输方式。2、掌握74LS
00.目录文章目录00.目录01.固件库概述02.创建工程步骤03.讨论04.附录01.固件库概述ST(意法半导体)为了方便用户开发程序,提供了一套丰富的STM32标准外设函数库库,简称固件库。固件库版本:STM32F10x_StdPeriph_Lib_V3.5.002.创建工程步骤2.1在建立工程之前,我们在电脑的某个目录下面建立一个文件夹,名字为00_Template。笔者目录为E:\ProgramData\Keil\00_Template2.2在上述00_Template目录下创建一下四个目录CORE用来存放核心文件和启动文件,OBJ是用来存放编译过程文件以及hex文件,STM32F10
1、准备材料正点原子stm32f407探索者开发板V2.4STM32CubeMX软件(Version6.10.0)keilµVision5IDE(MDK-Arm)ST-LINK/V2驱动逻辑分析仪nanoDLA野火DAP仿真器XCOMV2.6串口助手2、实验目标使用STM32CubeMX软件配置STM32F407开发板SDIO读写4线SD卡,实现轮询方式读写SD卡、以中断方式读取SD卡和以DMA方式读取SD卡3、轮询方式读取SD卡流程3.0、前提知识安全数码卡(SecureDigitalMemoryCard),简称SD卡,是嵌入式设备上常用的一种存储介质,通常可以将SD卡分为标准SD卡、min
文章目录0前言1简介2主要器件3实现效果4设计原理4.1**MLX90614红外测温传感器**4.2TOF10120激光测距传感器4.3DS18B20传感器**DS18B20单总线协议**5部分核心代码5最后0前言🔥这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是🚩基于单片机的远程wifi红外无接触体温测量系统🥇学长这里给一个题目综合评分(每项满分5分)难度系数:3分工作量:3分创新点:4分1简介
STM32中微秒延时的实现方式0.前言一、裸机实现方式二、FreeRTOS实现方式三、定时器实现(通用)4、总结0.前言 最近在STM32驱动移植过程中需要用到微秒延时来实现一些外设的时序,由于网上找到的驱动方法良莠不齐,笔者在实现时序过程中也浪费了不少时间。这里就将笔者觉得比较好的几种方式记录一下,方便后续使用,也可以作为参考。一、裸机实现方式 在STM32的裸机程序中,实现微秒延时比较简单,通过SysTick计时即可。关于SysTick的相关知识可以站内搜索,这里就不再过多赘述了,相关的delay_us函数参考了正点原子例程中的实现方式://注意:nus的值,不要大于798915us(
基于linux4.19内核翻译理解为了启动ARMLinux,您需要一个引导加载程序,它是在主内核之前运行的小程序。引导加载程序被期望初始化各种设备,并最终调用Linux内核,向内核传递信息。基本上,引导加载程序应该提供(至少)以下内容:1.设置和初始化RAM。2.初始化一个串口。3.检测机器类型。4.设置内核标记列表。5.加载initramfs。6.调用内核映像。1.设置和初始化RAM现有的引导加载程序:强制要求新的引导加载程序:强制要求引导加载程序应该找到并初始化内核在系统中用于易失性数据存储的所有RAM。它以与机器相关的方式执行此操作。(它可以使用内部算法自动定位和调整所有RAM的大小,也
蓝桥杯嵌入式——串口通信目录USART电平标准-TTL电平标准与RS232电平标准232通信标准 USB转232异步通信串口配置程序设计重定向串口发送函数发送字符串串口接收——中断1.USART通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIRENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA方式,可以实现高速数据通
硬件方案 硬件主要由stm32单片机核心板+LCD1602液晶显示屏+LM358运算放大电路+DAC0832数模电路+TL431基准参考电压电路+ICL7660稳压电路+按键电路等构成;如图: 设计功能1.LCD1602液晶显示波形种类和频率值(0-50KHZ)。2.按键可用于设置波形种类和设定频率步进值;3.电位器器改变振幅0-5V(2V-4V稳定)。4.共可产生4种波形,分别为正弦波、锯齿波、三角波、矩形波。5.有四个指示灯用于分别对应四种波形,指示当前系统发出的是哪种信号波形。设计原理图 硬件电路使用AltiumDesigner15设计完成。主要包括STM32主控电路,