stm32 & 涂鸦IoT
文章平均质量分 66
底层
一个旅者
这个作者很懒,什么都没留下…
展开
-
涂鸦智能CBU二次开发指导手册入门版——智能灯
涂鸦智能灯例程是一个非常好的源码,其中包括了GPIO操作完成的引脚控制,模拟IIC,输出PWM,tuyaOS日志控制模块等,所以如果可以拿下智能灯例程,那么关于模块IIC通讯,电机控制等方面的设计要求就可以完成。开发指导书已上传至账号资源,点击此处跳转......原创 2021-09-09 08:34:55 · 2475 阅读 · 0 评论 -
涂鸦 物联网套件开发编译环境搭建
根据官方要求,涂鸦代码的编译条件可以在windows支持的Cygwin、Mingw、WSL2等环境下编译,或者在ubuntu下直接通过命令符sh build_app.sh apps/tuya_demo_template tuya_demo_template 1.0.0编译。我选择windows+ubuntu开发,即windows系统+虚拟机这个是官方给出的环境搭建方法:https://github.com/tuya/tuya-iotos-embeded-sdk-wifi-ble-bk7231n原创 2021-05-12 10:50:07 · 1108 阅读 · 1 评论 -
涂鸦智能CBU二次开发指导手册入门版——智能插座
基础版介绍了手机端-云端-终端的配置方法、相互关系、以及控制原理,对涂鸦智能硬件设备有了初步的了解。本书为涂鸦 SDK 开发入门指导,通过修改 demo 代码实现使用手机端控制终端 LED 的功能。包含了 LED 硬件注册及初始化、上传 LED状态,并可以在 APP 上控制 LED 的开关功能,此次 LED 为后期电机MOT 的 LED,所以程序中均使用 mot_led 标识符。本书以 elp_1plug为例进行编写。在智能插座的 demo 中有 relay_led 的实现和控制代码,二次开原创 2021-08-12 11:14:45 · 1488 阅读 · 0 评论 -
涂鸦智能模块二次开发--基础
本次主要以CBU模块为例,使用例程完成手机端–云端–终端的连接,涂鸦 SDK 开发最基础指导,包含了开发环境、以及手机端-云端-终端的配置工作,可以让开发者最快时间完成 demo 的测试工作,demo 例程共有 template、elp_1plug、light_pwm 三个,本书以elp_1plug 为例进行编写。按开发时间顺序编成本书,开发者可根据本书按部就班即可完成。利用涂鸦官方 demo 实现了在手机 APP 上控制智能插座的开关。下载链接......原创 2021-08-12 11:14:08 · 2484 阅读 · 0 评论 -
STM32 MPU6050与匿名上位机通讯(V2.6版)
1、简介在四轴的调试中,经常要使用地面站与飞控之间进行通讯,可以调试飞控中的数据,比如PID参数,零点漂移值,传感器数值微调等等,所以在飞控中会预先编写与上位机通讯的代码。本次我们使用匿名科创开发的四轴上位机V2.6版,实现从STM32发送陀螺仪原始数据,姿态角,PID参数到上位机。2、硬件连接(1)STM32与MPU6050(2)STM32的串口1与上位机3、通讯协议通讯代码都是基于通讯协议编写的,就好像对暗号一样,暗号正确才会进行数据传输。匿名上位机的通讯协议大体上都遵循0x88+FU原创 2021-02-07 20:48:11 · 9642 阅读 · 4 评论 -
STM32 使用DMP库处理MPU6050数据
1、实验分析MPU6050包含一个三轴陀螺仪,三轴加速度计,并且可以通过AUX_CL和AUX_DA再扩展一个磁力计,内部设有一个可扩展的数字运动处理器DMP,可以将欧拉角以四元数的形式输出。本次实验我们使用DMP库对MPU6050初始化并且通过DMP中的库函数读取加速度值和陀螺仪值显示在LCD上2、实验前准备使用DMP库需要在MPU官方下载固件并将下面六个导入工程并且在固件库中需要进行一定的设定。在inv_mpu.c文件中预留有调用文件的接口,需要我们提前设定一下首先#define MPU原创 2021-02-07 13:36:35 · 28580 阅读 · 33 评论 -
STM32 软件模拟IIC
1、IIC通讯过程SCL和SDA在空闲时候均为高电平。MCU接收到通讯命令后,首先广播从机地址(例:MPU6050地址为0x68,0x69)+读/写操作,从机收到后产生应答,随后开始SCL强制拉低,开始传送一字节数据①收到应答信号后,继续传送第二个字节……②收到非应答信号后,停止传输2、IIC通讯协议从图中可以看到IIC起始信号:SCL保持高电平,SDA从高电平跳变到低电平IIC结束信号:SCL保持高电平,SDA从低电平跳变到高电平开始和结束信号的SCL相同,SDA相反。IIC应答信原创 2021-02-05 17:22:19 · 13067 阅读 · 6 评论 -
STM32 ADC的使用
1、ADC是什么ADC全称Analog to Digital Converter:模拟数字转换器。拥有12位测量范围,可以通过STM32上GPIO端口的输入模式实现对外部传感器的测量,测量范围为0-3.3V(0-4096)2、ADC介绍1、ADC总共有以下寄存器(1) ADC状态寄存器/Status register ADC_SR(2)ADC控制寄存器1/Control registier 1 ADC_CR1(3)ADC控制寄存器2/Control register 2 ADC_CR2(4原创 2021-02-05 11:04:31 · 1399 阅读 · 0 评论 -
新西达无刷电调驱动方法
哈哈原创 2021-01-31 16:35:53 · 6273 阅读 · 4 评论 -
STM32 TIM定时器的使用(5)——PWM驱动电调控制无刷电机
1、系列目录基本计时实验输入捕获实验(实验3的基础)电容按键检测实验 输出PWM实验PWM驱动无刷电机实验 (待补充)2、程序设计分析本次我们采用按键控制无刷电机的转速,实验本质是通过按键中断改变CCR的值,从而使PWM的占空比跟随按键改变,将PWM信号输入电调,最终实现对无刷电机的控制。3、实验用具正点原子STM32F1精英板新西达30A无刷电调A2212 1000KV无刷电机4、程序设计分析程序设计可以分为三大块:定时器、按键配置电机控制程序按键中断服务函数原创 2021-01-31 16:12:11 · 21310 阅读 · 10 评论 -
STM32 TIM定时器的使用(4)——PWM输出呼吸灯
1、系列目录基本计时实验输入捕获实验(实验3的基础)电容按键检测实验 输出PWM实验PWM驱动无刷电机实验 (待补充)2、原理(1)呼吸灯原理呼吸灯在手机上非常常见,现象就是灯光暗->亮->暗的过程,由现象可以倒推出原理:灯的电压小->大->小。但是这里为什么选PWM控制电压的大小呢?因为STM32中的TIM可以输出可控占空比的PWM波形,由PWM的占空比(高电平时间与整个周期的比值)来控制输出电压的大小。(2)PWM占空比改变原理在STM32的TIM寄存器原创 2021-01-29 17:28:04 · 4603 阅读 · 1 评论 -
STM32 部分重映射和完全重映射
STM32中拥有重映射功能,可以使硬件电路的设计更加简洁方便,在配置GPIO_PinRemapConfig()函数时,发现入口参数有两种重映射,分为部分重映射(Partial Remap)和完全重映射(Full Remap),那么这两个有什么区别呢?标题以TIM3为例根据图片可以看到,TIM3的部分重映射和完全重映射对应的引脚是不同的,所以在配置选择部分重映射和完全重映射的时候要考虑一下。重映射引脚分配图在哪这一部分其实并不在STM32的数据手册中,而在STM32的官方手册的8.3节,里面有所有功原创 2021-01-28 17:16:22 · 7159 阅读 · 0 评论 -
STM32 TIM定时器的使用(3)——电容按键检测
1、系列目录基本计时实验输入捕获实验(实验3的基础)电容按键检测实验 (待补充)输出PWM实验(待补充)PWM驱动无刷电机实验 (待补充)2、电容按键检测原理原理其实非常简单,通过TIM定时器的输入捕获功能判断电容的充电时间(没有触摸的充电时间短,有触摸的充电时间长)经过对比来确定是否有手指触碰。图片来源:零死角玩转STM32(库函数版)刘火良由上面两个图片可以看出,没有手指触摸时电容为Cx,有手指触摸时电容为Cx+Cs根据电容充电时间公式:Vc=V0*(1-e(-t/RC))原创 2021-01-27 17:13:04 · 2108 阅读 · 1 评论 -
正点原子惯用手法——变量寄存器法
如果是跟随正点原子学习STM32的同学会发现,原子的代码里面很喜欢设置一个状态标志变量。例如串口实验中的USART_RX_STA变量、定时器中的TIM5CH1_CAPTURE_STA变量,都是将一些重要数据保存在自定义的变量里面,这些变量可以看作是用户自定义的标志变量寄存器。那么下面分析一下这些“寄存器”到底是什么意思、该如何使用。1、下面以串口实验为例串口实验中定义 u16 USART_RX_STA =0逻辑图分析:函数本体:void USART1_IRQHandler(void)原创 2021-01-22 16:17:23 · 591 阅读 · 0 评论 -
STM32 TIM定时器的使用(2)——输入捕获
输入捕获实验是电容按键检测实验的前提所以需要先学习用TIM实现输入捕获1、系列目录基本计时实验输入捕获实验电容按键检测实验 (待补充)输出PWM实验(待补充)PWM驱动无刷电机实验 (待补充)2 、输入捕获原理定时器都有四个通道,我们需要将使用其中一个通道与开发板的按键相同,例如正点原子F1精英板的KEY_UP按键和TIM5_CH1为共用IO(PA0),所以我们只需要开启TIM5的捕获功能即可计时按键的高低电平变化。所以要使用到TIM_TimeBaseInitTypeDef和TIM_原创 2021-01-22 14:52:42 · 4890 阅读 · 0 评论 -
STM32 TIM定时器的使用(1)——定时
1、定时器简介STM32中,定时器的应用非常广泛,涉及计时、信号检测、电机控制等等,并且定时器章节的介绍在STM32F1的手册里面也占据了大量的篇幅,足以看出定时器的重要性。我将会做三个实验来学习TIM定时器的使用:(1)基本定时实验(2)电容按键检测实验(3)PWM驱动无刷电机实验2、模式简述根据官方手册可以看到,TIM的模式有很多:计数器模式:计时模式输入捕获模式:捕获输入的信号电平,捕获发生在影子寄存器上,然后再复制到预装载寄存器中。PWM输入模式:输入捕获的一个特例。输出比较原创 2021-01-20 14:49:58 · 4120 阅读 · 0 评论 -
STM32 EXTI外部中断及NVIC的抢占优先级和响应优先级解释
1、中断类型从之前的串口实验可以看出,STM32总共分为内部中断和外部中断,内部和外部的配置差别不是很大,外部中断只是多了一步,需要通过GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)函数(在stm32f10x_gpio.h里面)将外部中断源挂载到中断线上即可。2、外部中断配置过程1、开时钟(必须开启复用时钟)2、初始化用到的GPIO口3、将使用到的GPIO口挂载到中断线上 GPIO_EXTILineCon原创 2021-01-18 21:43:15 · 3589 阅读 · 0 评论 -
STM32F1系列系统结构和外设挂载
原创 2021-01-16 16:58:47 · 333 阅读 · 0 评论 -
STM32 USART串口通讯
本片文章代码基于正点原子STM32F1精英板编写(F103ZET6)采用中断方式通过USART1接收串口助手的发送的数据并且将数据在串口助手上打印出来1、USART配置步骤①开时钟②配置USART1的IO端口③配置USART1的工作模式④配置NVIC⑤使能串口2、USART库函数讲解/**这些是串口的配置以及收发数据需要用到的库函数*/void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct)原创 2021-01-16 16:52:04 · 691 阅读 · 0 评论