K_A12_022基于STM32等单片机驱动VL53L0X模块串口与OLED0.96双显示一、资源说明二、基本参数参数引脚说明三、驱动说明UART对应程序:IIC对应程序:四、部分代码说明1、接线引脚定义1.1、STC89C52RC+VL53L0X模块1.2、STM32F103C8T6+VL53L0X模块五、基础知识学习与相关资料下载六、视频效果展示与程序资料获取七、注意事项八、接线说明STC89C52RCUART:IIC:STM32F103C8T6UART:IIC:注:偏差校准步骤(均十六进制发送)1、偏差校准命令A5210AD0(此处是在10CM处校准)2、加载数据命令A54304EC(断
什么是ADC转换?ADC转换的全称是:Analog-to-DigitalConverter,指模拟/数字转换器ADC的性能指标:ADC分辨率:SSA与VREF-一起接到地,DDA与VREF+接到3.3v,所以ADC转换的范围是0---3.3v所以最后的ADC转换值应该是我们的测量值*分辨率 分辨率=3.3v/2^12=(3.3/4096) 12位的转换器所以是2的12次方为最小刻度ADC通道: 什么叫注入通道?什么叫规则通道? 我的理解是:注入通道是有特权的通道,可以优先转换,而规则通道是没有特权的通道只能按顺序转换(类似于买票排队,注入通道就类似于老弱病残孕军人之类的,享有优先特权,而规
1.1-综述从事stm32开发的话,肯定绕不开stlink,使用stlink开发stm32时用到的知识点。对于常规开发而言,80%时候会使用keil或vscode对目标芯片进行下载与在线调试,简单的bug我们一般反复下载就行了,复杂的bug需要进行单步调试、查看寄存器、输出swo信息等。本文简单介绍stlink的两个工具st-utility和cubeProgrammer,重点介绍st-link的命令行的使用,因为越来越多的人会(抛弃keil)转向使用vscode调用stlink进行开发,最后对stlink和jlink进行简单对比。1.2-stlink是啥?stlink或st-link是一个解决
该程序是纯手敲,非Cube生成!所有代码均注释。源码在文章后面获取WS2818简介Keyword:单线通讯、归零码、Reset、RGB顺序RGB一共有24bit位->相当于驱动一个灯要24bit位->驱动若干个灯要24*nbit位,通过Reset码决定数据终止(保持)24bit位应该如何发送?可见:表示低电平需要T0H和T0L的配合,其关键在于高电平的时间,图中所示T0H时间为0.85us±150nsQ:怎么控制高低电平的时间数据发送速度可达800Kbps,就是1.25us发送一位数据,因为协议有一定的兼容性,所以实际上一个位的周期在1.25us±300ns之间都能识别到,因为是us级延时,所
STM32以中断的方式点亮LED小灯(标准库)文章目录STM32以中断的方式点亮LED小灯(标准库)一.认识中断1.中断优先级:2.中断嵌套:3.中断执行流程4.中断与stm325.中断与NVIC(嵌套向量中断控制器)6.EXTI(ExternInterrupt)外部中断①.EXTI简介②.EXTI基本结构7.AFIO复用IO口二.创建MDK(keil5)项目1.项目结构2.基本设置三.具体实现1.配置RCC,把涉及到的外设的时钟全部打开2.配置GPIO,选择端口为输入模式(GPIOB14号引脚)3.配置AFIO,选择我们用的GPIO连接到后面EXTI4.配置EXTI,选择触发方式(例如上升沿
惯性导航,是一种无源导航,不需要向外部辐射或接收信号源,就能自主进行确定自己在什么地方的一种导航方法。惯性导航主要由惯性器件计算实现,惯性器件包括陀螺仪和加速度计。一般来说,惯性器件与导航物体固连,加速度计测量物体运动的加速度,已知初始状态(速度和位置),加速度不断积分就可以计算出每个时刻速度和位置,就是这么简单的道理计算出速度位置进行导航。四轴结构四轴飞行器在空间上有6个自由度,分别是沿3个坐标轴进行平动和转动,通过对四个旋翼的转速控制来实现,6个自由度方向的运动姿态分别为:垂直升降、俯仰角度、前后飞行、横滚角度、左右侧向飞行。四轴飞行器机体结构有“X”型和“+”型两种,我们通过“X”型进行
我是通过这个进行学习的,我觉得讲的很好,这里我稍加修改,作为自己的学习笔记:嵌入式杂谈之中断向量表前言STM32根据boot引脚的配置方式有3种启动方式,但是无论哪一种方式,对于STM32来说都是从0x00000000启动STM32单片机启动第一件事就是取得中断向量表中断向量表是一个4byte的数组,每个成员都是一个地址,指向相应的中断处理函数,当芯片处于不同的状态时,就会根据这段内容跳转到对应的地址去执行对应的程序。特别的第一个成员是栈顶地址,第二个成员是复位函数Reset_Handler。向量表根据Arm的规定,cortex3cortex4启动都是从0x00000000开始,量表是一个WO
软件仿真和硬件仿真什么区别?软件仿真就是没有硬件参与的仿真,完全是模拟实现的。硬件仿真是将程序下载到控制芯片的FLASH或RAM中,直接在硬件上实现仿真。【有什么问题欢迎联系讨论,一起解决问题】仿真这种东西,因为涉及到信任问题,用的好觉得好用,用不好可能会徒增麻烦——“还不如直接在硬件上调试靠谱”。但是总体上,仿真还是比较有用的,比如在排查软件问题(寄存器配置等)的时候,使用软件仿真是非常靠谱的。而如果涉及到硬件的问题(比如你的板子代码需要读取外部信号,或者输出信号等),可能需要用到硬件仿真,或者说在线仿真。关于仿真,网上的资料说的还是挺全的,这里只做总结。目录一、软件仿真1.1仿真配置1.2
1.软件准备 (1)编程平台:Keil5(2)CubeMX2.硬件准备(1)F1的板子,本例使用经典F103C8T6(2)一个捡来的舵机(3)ST-link 下载器(4)杜邦线若干 3.关于舵机控制原理 舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的: 4.CubeMX配置(1)芯片选择 (2)配置RCC、SYS、时钟树配置RCC配置SYS配置时钟树(3)配置定时器产生PWM波形 此时产生PWM波
**0.96寸OLED显示屏标准库移植HAL库,使用模拟IIC**由于项目的需要使用OLED屏显示,并且现有的项目程序是基于HAL库编写的,而手头能找到的程序是标准库的驱动程序,大概看了一下代码,比较简单,涉及到不同库之间需要改动的代码很少。代码下载链接:点击此处下载驱动代码首先去LCDWiKi网站(链接)下载基于0.96寸OLED屏的IIC驱动代码,这个网站包含了常用显示模块的驱动代码,十分方便,本次我选择的是0.96inchOLEDModuleSKU:MC096GX。下载后只需要oled屏的oled.c、oled.h和oledfont.h代码,但是需要改动如下几个地方的代码首先是oled.