大家好,我是杂烩君。 越来越多的硬件产品,硬件构成不仅仅是集成在一块板子上,而是多块控制板协同工作。 此时,就会涉及到多块板之间的通信(有线/无线通信),就会涉及到到通信协议。很多时候,我们都会自定义一些协议。 我们之前在也分享一种常用的自定义协议格式: 分享一种灵活性很高的协议格式(附代码例子) 在多板系统中,会有以下这些应用场景: 每块板都有OTA升级的需求。 可能某块板
https://gitee.com/zhengnianli/EmbedSummary 我们的资料仓库下面之前有一位小伙伴留言: 杂烩君之前偶然间知道aardio这么一个工具,但没有实际去了解过。本期花点时间来了解、学习一下aardio,看看aardio是不是如这位朋友所说的这是一个不错的工具。 本期主角:aardio aardio属于易用性极强的动态语言,但也是一种混合语言
使用VScode编译betaflight固件—基于windows平台 1、使用git克隆betaflight的开源代码 2、betaflight的代码框架分析: 3、配置编译环境: 4、VScode上编译 betaflight不仅可以在LInux上进行编译也可以在Windows上编译,本文主要介绍在windows平台上使用VScode编译betafli
前言 大家好,我是杂烩君。本次来分享一些芯片相关的小科普文。作为嵌入式开发工程师,我们对芯片都需要有一定的了解。 指令集 1、指令集的体现 指令集,就是CPU中用来计算和控制计算机系统的一套指令的集合。而指令集的先进与否,也关系到CPU的性能发挥,它也是CPU性能体现的一个重要标志。 指令集也作为一种标准规范,用于规范芯片设计工程师及编译器开发工程师: 因为芯片与IDE都遵
betaflight github开源地址:https://github.com/betaflight/betaflight.gitBetaFlight是穿越机领域比较成熟的开源飞控,需要注意的是BetaFlight官网只是提供开源软件工程,用户需要根据这套程序,结合自己的硬件,自行修改相关驱动代码。本文主要是分析BetaFlight源码框架,然后基于这个框架做修改,生成自己硬件对应的程序固件。
概述 在用单片机驱动SPI设备时,需要两个特殊的寄存器配置位,分别是 CPOL (Clock POlarity)和 CPHA (Clock PHAse)。 CPOL配置SPI总线的极性 CPHA配置SPI总线的相位 下面从时序图入手,了解极性和相位。 SPI总线的极性 极性,会直接影响SPI总线空闲时的时钟信号是高电平还是低电平。 CPOL = 1:表示SCK空闲时是高电平 C
今天要在RTOS配置外部中断,为了省事,直接copy的裸机的外部中断例程,结果不能用,把可能出现的问题全部都查了一遍。首先FreeRTOS可管理优先级是5~15,这个注意到了,但是还是不行。是因为少了一个重要的参数。 先看裸机的中断结构体参数,这个和操作系统没有任何差别。然后我们再来看中断的配置 大家仔细看一下是不是少了一个参数。使能参数没有写,这是因为裸机默认使能,但是FreeRTO
STM32定时器 前言 最近想弄一个多路输出PWM,但是发现TIM2不能用,根据手册也对它进行重映射了,但是还是不能用,用示波器发现驱动能力比较弱,然后禁用jtag搞定了。 一、问题分析 重映射的参数在stm32底层文件可以看到 这里有写 GPIO_PinRemapConfig(GPIO_FullRemap_TIM2,ENABLE); //完全映射 1.不重映射时,默认
1、硬件准备 LinkIt 7697 _1,继电器模块_1,面包板_1,RGB LED灯_1(共阳极,工作电流20mA,红灯压降2~2.2V,绿灯蓝灯压降3~3.2V),限流电阻2个(一个150Ω,一个100Ω),两头针杜邦线若干,micro USB数据线一根,小号螺丝刀一套,万用表一台。 2、软件准备 1)安装arduino1.8.xxx版。 2)文件—>首选项—>附加开
写在前面 上一篇简要的介绍了CAN的基本知识,小米电机的通信协议,以及小米微电机驱动库的结构,本章将结合具体代码分析HAL库CAN通信流程。为什么使用F105呢?因为f105属于互联型,拥有两个CAN,分别是主CAN1和从CAN2,在使用can2时必须要开启can1的时钟,若can1和can2同时使用时,先初始化can1驱动,再初始化can2。做机器人电机比较多,双CAN板更合适一些。 前置任
创建ROS工作空间 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src catkin_init_workspace 回到工作目录根空间使用catkin_make命令编译整个空间: cd ~/catkin_ws/ catkin_make 创建ROS功能包 进入工作空间,使用catkin_create_pkg命令创建功能包: cd ~/ca
ADC+TIM+DMA采集交流(三) 少年,你渴望力量吗? 前言 本文主要讲解ADC超频工作。 所需工具: 开发板:STM32F103RCT6 STM32CubeMX IDE: Keil-MDK相关文章: STM32HAL ADC+TIM+DMA采集交流信号 STM32cubeHAL ADC+TIM+DMA (二) 原理简介 F1中文参考手册上写道
设备拿到手当然是要先试一下效果的,这部分可以参考本专栏的第一篇 Viobot开机指南。 接下来我们就从UI开始熟悉这个产品吧! 1.状态 设备上电会自动运行它的程序,开启了一个服务器,上位机通过连接这个服务器连接到设备,连接成功后就如上图所示,状态栏会显示已连接。 此时它的系统的算法状态是停止状态的,这个系统状态有七个状态: 1)停止 2)mono1初始化中3)mono1运行中
ADC+TIM+DMA采集交流 前言 本文主要讲解定时器触发ADC去采集交流信号,DMA把数据搬移到内存。 所需工具: 开发板:STM32F103C8T6 STM32CubeMX IDE: Keil-MDK相关文章: STM32HAL ADC+TIM+DMA采集交流信号 基于cubemx(二) STM32cubemx ADC+TIM+DMA超频采样 模式简
STM32实现FFT,求取幅度频谱 FFT不太对劲的理解 FFT的原理比较复杂,因为32使用FFT不用去管算法是如何运作的,我在这里就进行简单的介绍了。因为是简单介绍,就只介绍下幅度频谱图,不考虑相位频谱图。 FFT可以将一个信号从时域变换到频域,比如一个1VPP的1k的正弦信号,它的时域和频域的示意图如下: 频域为我们观察信号提供了一个新的视角。比如下面是1k和2k信号的
ADC+TIM+DMA采集交流(二) 前言 本文是《STM32HAL ADC+TIM+DMA采集交流信号》的续篇,这一篇我们将让ADC以1M的速度去采集。过程中会学习到ADC时钟,采样率控制的概念。 所需工具: 开发板:STM32F103C8T6 STM32CubeMX IDE: Keil-MDK相关文章: STM32HAL ADC+TIM+DMA采集交流信号
STM32多串口实现printf——基于cubemx 前言 本文主要讲解单片机如何实现多个串口printf打印数据。 所需工具: 开发板:STM32F103RCT6 STM32CubeMX IDE: Keil-MDK cubemx端初始化 使能串口即可,没有其他的注意事项。 keil端编程 在usart.c底部编写以下代码 #include <stdarg.
前言 本文主要讲解定时器触发DAC去输出任意信号,DMA负责数据数据搬移。 所需工具: 开发板:STM32F103RCT6 STM32CubeMX IDE: Keil-MDK 相关文章: 什么是DAC 【讲座】ADC和DAC(模数和数模转换器)(ADC and DAC (Analog to Digital And Digital to Analog )_哔哩哔哩_bilib
一.使用上位机控制 TOF版本设备点击TOF ON即可开启TOF,开启后按键会变成TOF OFF,点击TOF OFF即可关闭TOF 补光灯版本设备点击LED ON即可开启LED ,开启后按键会变成LED OFF,点击LED OFF即可关闭LED 设置页面的viobot栏,补光灯前面的勾打上,就默认设备上电会开启补光灯,TOF前面的勾打上,就默认设备上电会开启TOF。 二.ROS控制
观前提醒:本文以外部中断点灯为例,分析了HAL库中中断服务相关函数的使用及相互关联、底层原理 一、实例实现 实例简介:主函数控制LED2进行闪烁,中断控制LED0开关我们先使用CubeMX创建项目文件:1、在System Core中配置外部时钟,这里视板子的不同而改变,我这里只有外部高速晶振,所以开启外部高速晶振。2、配置时钟树,如图:3、配置GPIO,原理图如下:我们配置PC2为上升沿检测中断模
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信