STM32F103
文章平均质量分 62
丑萌硬件媛
我又回来了
展开
-
移动机器人嵌入式系统详细篇
接触了移动机器人这么久,我觉得应该写点什么东西,分享一下最基础的自己关于移动机器人的理解,也作为笔记总结,留到以后查阅。目前我还是觉得自己刚入门,有时候总想的太多,不如实践来的更直接,下面总结之前的实践经验,来系统的梳理一下什么是移动机器人软硬件系统问题。文中涉及到的开源项目网站地址如下:开源项目网站Handsfree(https://github.com/HANDS-FREE/OpenRE)...原创 2019-11-22 14:26:37 · 5190 阅读 · 0 评论 -
STM32F103之DMA实验,内存通过DMA向串口1发送数据
#include "dma.h"////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////DMA...原创 2018-06-26 12:08:23 · 4413 阅读 · 0 评论 -
STM32F103之实验5,两个单片机的NRF24L01的发送 接收调试代码
一#include "led.h"#include "delay.h"#include "sys.h"#include "usart.h"#include "lcd.h"#include "key.h"#include "spi.h"#include "24l01.h" int main(void) { u8原创 2018-06-19 19:05:27 · 4247 阅读 · 4 评论 -
微机原理原理与接口技术视频
这个视频还是感觉挺好的,对于基础薄弱的可以看看这个视频。https://i.youku.com/i/UMzk0Nzc3MjE2OA==/videos?spm=a2hzp.8244740.0.0原创 2018-07-02 21:23:05 · 1866 阅读 · 0 评论 -
UCOS 中的优先级判定
UCOS中优先级判定图1图2如上图1与2所示,OSRdyGrp确定了优先级的次低三位(bit5-bit3),OSOSRdyTbl确定了优先级的低三位(bit2-bit0)。OSRdyGrp = 0x011; //0b00010001 此处表示D0位D4位被置位1,及存在OSRdyTbl[0]和OSRdyTbl[4]两个组包含优先级。OSRdyTbl[0] = 0x0a...原创 2018-07-24 20:21:59 · 2801 阅读 · 0 评论 -
STM32F103之实验6 采用MPU6050及DMP解算移动机器人姿态实验
写在最前面,这篇博客写到的姿态解算是由DMP硬件完成的,介绍了底层驱动,重点例举了MPU6050的初始化函数,加速度计,陀螺仪原始数据的读取函数,设置传感器的量程范围,采样频率函数。下一篇博客,我会不采用DMP,直接用单片机实现姿态解算。如上图所示,SCL 和 SDA 是连接 MCU 的 IIC 接口,MCU 通过这个 IIC 接口来控制 MPU6050,另外还有一个 IIC 接口:AUX...原创 2019-06-12 23:39:23 · 15377 阅读 · 4 评论 -
STM32F103之实验7一阶互补滤波求解移动机器人的姿态代码
上一篇博客,采用的是DMP解算姿态,且给出了底层硬件配置及驱动方式,此处摒弃DMP直接由单片机自己实现姿态解算,接下来介绍由三轴陀螺仪和加速度计的值来使用四元数软件解算姿态的方法。我们先来看看如何用欧拉角描述一次平面旋转(坐标变换):设坐标系绕旋转α角后得到坐标系,在空间中有一个矢量在坐标系中的投影为,在内的投影为由于旋转绕进行,所以Z坐标未变,即有。转换成矩阵形式表示为...原创 2019-06-21 18:35:48 · 2141 阅读 · 3 评论 -
STM32F103流水灯实验
#include "led.h"//初始化PB5和PE5为输出口.并使能这两个口的时钟 //LED IO初始化void LED_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOD, ENABLE); //使...原创 2018-06-10 21:35:06 · 7557 阅读 · 0 评论 -
STM32F103之NRF24L01的发送 接收调试,多通道接收等总结与反思
问题4:是否可以一对多相互通信?答:可以。nrf24l01最多一对几个呢?答案是无数个!官方手册上说,nrf24l01可以一对六,指的是自身的通道有6个,而且这种模式只能是,不能1发6收。所以我们一般不用这种方式。我们一般只用nrf24l01的通道0,通过改变频道和地址来实现1对多的互发。它属于2.4G芯片,1收6发但实际上,可以在2.4G到2.5G之间的频道上通信,一共有126个频道,它的地址是...原创 2018-06-17 18:24:25 · 8255 阅读 · 16 评论 -
STM32F103之实验2控制1个电机并采用编码器读取电机转速(代码)
电机驱动参见以前的博客,这里补充编码器测速的程序部分#include "encoder.h"#include "led.h"///TIM4 编码器输入,TIM4_CH1作A相,TIM4_CH2作B相GPIO_Pin_6|GPIO_Pin_7;TIM_ICInitTypeDef TIM_ICInitStructure;void TIM4_Encoder_Init(u16 arr,u16 psc){...原创 2018-06-11 23:34:29 · 31808 阅读 · 24 评论 -
stm32f103之实验3 红外遥控1个电机正转反转usart输出编码器测速实验
这里在实验2的基础上添加了红外遥控子程序#include "remote.h"#include "delay.h"#include "usart.h"//红外遥控初始化//设置IO以及定时器4的输入捕获void Remote_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; NVIC_InitTypeDef NVIC_InitS...原创 2018-06-12 19:18:06 · 2714 阅读 · 0 评论 -
STM32F103之实验4 红外遥控2个电机正转反转usart输出编码器测速实验
在实验3的基础上,增加了另外一个电机的驱动。此处贴出全部代码。//* Copyright (c) Hands Free Team. All rights reserved.//* Contact: QQ Exchange Group -- 521037187//*//* LICENSING TERMS: //* The Hands Free is licensed generally unde...原创 2018-06-13 15:08:38 · 1666 阅读 · 5 评论 -
ESP8266与电脑PC端TCP通讯步骤+例子一
我们先讲,拿到一个ESP8266模块之后,该做什么。我拿到这个模块之后,一脸蒙蔽,我不知道怎么使用,这个时候,不要慌,去看技术手册。我4步让你学会最简单的使用ESP8266与电脑PC端的通讯Step1:接线。首先我们来个简单的让esp8266跟电脑通讯,怎么去接线。如下图所示,EN引脚(功能:使能ESP8266模块)一定要接上。(RST复位引脚可以不接)。其余照图1必须接好。下面是我接线的图2。S...原创 2018-06-21 14:44:24 · 26822 阅读 · 11 评论 -
ESP8266与电脑端的TCP通讯例子二
我们讲解ESP8266与电脑端的TCP通讯例子二:ESP8266模块为TCP Client模式,电脑为TCP AP模式。只需将例子一中的Step4进行更改如下:l 首先电脑端接接入一个路由,我连接的教研室的无线网“zonewander_robot”,然后开启网络调试助手,进行. TCP AP模式配置如图2.1所示:图2.1 l ESP8266模块为TCP Client模式。指令如下: 指令运行...原创 2018-06-21 19:46:32 · 5438 阅读 · 1 评论 -
STM32F103之pwm闭环调控电机(理论总结)
在实验4的基础上,单纯的操纵裸电机,已经达不到精度了,这时候 需要用到电机控制,电机还是那个电机,只是控制PWM的占空比,进而调节轮速,达到我们需要的设定值。有了测量值,即编码器测出的当前值,动态地调节测量值与设定值之间的误差,使得误差为0即可。接下来,我们得看一下如何得到轮速的测量值。我画了如下的流程图:一目了然。(纯手工,有点龙飞凤舞。。)...原创 2018-06-14 15:48:04 · 12707 阅读 · 5 评论 -
STM32F103之实验1使用定时器驱动1个电机
#include "encoder.h"#include "led.h"void TIM4_Encoder_Init(u16 arr,u16 psc){GPIO_InitTypeDef GPIO_InitStructure;TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;TIM_ICInitTypeDef TIM_ICInitStructure; ...原创 2018-06-09 17:47:43 · 6438 阅读 · 9 评论 -
stm32f103之串口实验,串口相互通讯即用同一个单片机的串口1与串口3相互通讯
串口1,串口3都接到电脑上,选上”Use MicroLIB”这是KEIL自带的一个简易的库,例如你用printf函数的时候,就会从串口1 输出字符串,直接默认定向到串口1。(此程序中两个波特率不匹配,接受会出错,在实践中要设置串口一致的波特率)以下是程序#ifndef __USART_H//头文件#define __USART_H#include "stdio.h" #in...原创 2018-06-24 19:37:42 · 13303 阅读 · 7 评论 -
STM32的中断优先级详解
中断优先级设置步骤:系统运行后先设置中断优先级分组。在主函数调用函数:void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);整个系统执行过程中,只设置一次中断分组。针对每个中断,设置对应的抢占优先级和响应优先级:void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);如果需要挂起/解挂,查看...原创 2018-06-11 14:13:50 · 9699 阅读 · 0 评论