自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

宇智波·赵四的忍者小屋

我倒,你也在网上冲浪啊~

  • 博客(38)
  • 收藏
  • 关注

原创 写在前面

一晃也读完本科读研2快年了,学习了很多知识,也忘掉了很多知识。一路上有良师益友也有最佳损友,其实一直看CSDN博客很久了,但是从没有写过一篇文章。学习中有迷茫有困惑,也有觉得不能解决问题时的厌烦难过,但是当攻克一个问题时的成就感和喜悦,是无与伦比的。于是开此博客记录工作学习中遇到的问题和心得。希望与大家分享这些知识,也希望当我疲惫困乏时,看一看这些文字,能重拾当初的喜悦和感动。在此借用胡适先生的...

2019-04-30 15:44:05 94

原创 STM8 寄存器点亮LED

STM8 寄存器点亮LED库函数:方便,但效率低,调用文件多寄存器:高效,芯片资源最大化运用,但繁琐//使用寄存器方式控制最小系统板上 PB5 引脚 LED 灯闪烁#include "IOSTM8S103F3.h"/*int main( void ){ unsigned int i; //PB5:0010 0000 PB_DDR |= 0X20; //OUT PB_C...

2020-01-09 13:05:42 559

原创 I2C—读写EEPROM学习笔记之软件模拟IIC原理

软件模拟I2C原理:内核直接控制2个GPIO引脚电平,模仿SDA和SCL两根线与外部设备进行通讯。中间抽空做了一下TDA2030功放的仿真实验。心态有些崩,做出来的波形好像一坨shit,难受。算了,继续学一下模拟I2C。...

2019-07-05 15:29:31 2164 5

原创 今天在淘宝上买元器件

今天在淘宝上买了一堆元器件,得出以下经验教训:1.电容要搞清楚到底是买极性的还是非极性的,极性的不可用在交流上,只要符合电路要求,同等大小非极性电容可以代替极性电容2.电源线要搞清楚能带多大电流,整理了个电线粗细-电流表3.大水塘整流滤波器,输出电压为变压器输出峰峰值。额定电压x1.4这样。4.仿真完以后要看看各个元器件功率,特别是电阻的,然后电容的电压。5.别的没啥了,就是感觉折腾一...

2019-07-04 15:35:54 441

原创 闲来无事,温习一下电子电路基础

关于滤波整流电路大概搭了一个这样的,然后电容极性的话,正极接高电位,负极接低电位。也叫大水塘吧还行。然后搜了一下不同类型的电容作用:https://blog.csdn.net/lz_kwok/article/details/52020350以及http://m.elecfans.com/article/827721.html...

2019-07-03 11:07:06 176

原创 I2C—读写EEPROM学习笔记代码详解读写EEPROM完整工程

更新:加入了超时检测,程序更加严谨其他的主要看下bsp_i2c_ee.c文件里面怎么写入超过一页数据,并地址对齐void I2C_EE_BufferWrite(u8* pBuffer, u8 WriteAddr, u16 NumByteToWrite){ u8 NumOfPage = 0, NumOfSingle = 0, Addr = 0, count = 0; Addr = W...

2019-07-02 15:46:56 3215

原创 I2C—读写EEPROM学习笔记之代码详解-bytewrite/ramdomread

bsp_i2c.h#ifndef __BSP_I2C_H#define __BSP_I2C_H#include "stm32f10x.h"//EEPROM 设备地址(8位)#define EEPROM_ADDR 0xA0/** * IIC EERPOM的引脚定义**/#define STM32_I2C_OWN_ADDR 0x5f // ...

2019-06-21 16:01:24 4412

原创 I2C—读写EEPROM学习笔记之代码详解-初始化I2C

终于知道怎么设置自动补全代码了。本实验利用串口通讯观察实验结果。准备一些数据->串口输出展示->使用IIC->写入EEPROM->稍等->使用IIC->读取EEPROM->校验结果->串口输出展示#include "./led/bsp_led.h" //包含头文件时这么写,意思是users目录下面led文件夹头文件,可自动添加头文件路径...

2019-06-20 16:03:26 1663

原创 I2C—读写EEPROM学习笔记之EEPROM简介

EEPROM原理图:electrically erasable and programmable read-only memory一个总线只需要一个上拉电阻就可以了,不需要每个都接。PB6,PB7:IIC1_SCL,IIC1_SDAHOLD:写保护 为高电平就无法写入数据,这里接地A012:地址输入 前四位固定1010后三位可以自己配置 这里是000七位地址:1010000 写程序...

2019-06-17 16:51:21 1260

原创 I2C—读写EEPROM学习笔记之STM32的I2C库函数

stm32f10x_i2c.htypedef struct{ uint32_t I2C_ClockSpeed; /*!< Specifies the clock frequency.传输速率 This parameter must be set to a value lower tha...

2019-06-11 16:03:30 1856 1

原创 I2C—读写EEPROM学习笔记之STM32的I2C通讯过程

STM32的I2C通讯过程使用I2C外设通讯时,在通讯的不同阶段它会对“状态寄存器(SR1及SR2)”的不同数据位写入参数,通过读取这些寄存器标志来了解通讯状态。1.主发送器SB:start bit 起始位发送成功ADDR:收到ATxE:数据寄存器为空BTF:移位寄存器为空• 控制产生起始信号(S),当发生起始信号后,它产生事件“EV5”,并会对SR1寄存器的“SB”位置1,表示起...

2019-06-10 15:24:35 523

原创 I2C—读写EEPROM学习笔记之STM32的I2C框图详解

STM32的I2C特性及架构软件模拟协议:使用CPU直接控制通讯引脚的电平,产生出符合通讯协议标准的逻辑。硬件实现协议:由STM32的I2C片上外设专门负责实现I2C通讯协议,只要配置好该外设,它就会自动根据协议要求产生通讯信号,收发数据并缓存起来, CPU只要检测该外设的状态和访问数据寄存器,就能完成数据收发。这种由硬件外设处理I2C协议的方式减轻了CPU的工作,且使软件设计更加简单。ST...

2019-06-05 10:28:55 502

原创 I2C—读写EEPROM学习笔记之I2C物理层与协议层

学MPU6050之终极棒棒瓶颈,忘了学I2C部分,导致后期有些代码看不懂。其中据说软件模拟I2C比硬件I2C好使,所以特此来学习一下。P话不多说,开始学习。I2C协议简介I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、 CAN等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路...

2019-06-04 17:47:12 750

原创 MPU6050加速度传感器学习笔记之实验《获取原始数据》

1.硬件STM32-MPU6050 硬件IIC,MPU6050基本驱动程序,不包含DMP功能,没有移植官方驱动程序。本程序通过串口输出简单测量数据,没有驱动液晶显示。(不支持匿名上位机可视数据)。(使用硬件IIC时不能与液晶屏同时使用,因为FSMC的NADV与IIC1的SDA 是同一个引脚,互相影响了)...

2019-05-30 16:54:15 3252 1

原创 MPU6050加速度传感器学习笔记之传感器

传感器基本概念1. 传感器工作原理在电子技术中, 传感器一般是指把物理量转化成电信号量的装置。敏感元件直接感受被测物理量,并输出与该物理量有确定关系的信号,经过转换元件将该物理量信号转换为电信号,变换电路对转换元件输出的电信号进行放大调制,最后输出容易检测的电信号量。例如,温度传感器可把温度量转化成电压信号量输出,且温度值与电压值成比例关系,我们只要使用ADC测量出电压值,并根据转换关系即可...

2019-05-27 16:43:08 7428 1

原创 MPU6050加速度传感器学习笔记之姿态检测

姿态检测基本概念在飞行器中,飞行姿态是非常重要的参数, 以飞机自身的中心建立坐标系,当飞机绕坐标轴旋转的时候,会分别影响偏航角、横滚角及俯仰角。假如我们知道飞机初始时是左上角的状态,只要想办法测量出基于原始状态的三个姿态角的变化量,再进行叠加,就可以获知它的实时姿态了。坐标系抽象来说,姿态是“载体坐标系”与“地理坐标系”之间的转换关系。三种常用的坐标系:• 地球坐标系: 以地球球...

2019-05-27 15:15:59 6407 2

原创 DMA学习笔记 M2M M2P 代码实现

编程要点1-初始化DMA初始化结构体。2-熟读参考手册DMA章节(非常重要)M To M 编程要点 1-在FLASH中定义好要传输的数据,在SRAM中定义好用来接收FLASH数据的变量。 2-初始化DMA,主要是配置DMA初始化结构体。 3-编写比较函数。 4-编写main函数。bsp_dma_mtm.c:#include "bsp_dma_mtm.h"/* 定义a...

2019-05-24 17:12:02 2106 1

原创 DMA学习笔记—直接存储器访问 理论部分

理论部分功能框图简介DMA: Data Memory Access,直接存储器访问。主要功能是可以把数据从一个地方搬到另外一个地方,而且不占用CPU。不用CPU暂存数据DMA1: 有7个通道,可以实现 P->M, M->P,M->MDMA2: 有7个通道,可以实现 P->M, M->P,M->MM:Memery P:Peripheral...

2019-05-23 16:59:18 423

原创 串口通信实例串口发送命令控制RGB灯

代码注释清楚了,可以直接看。#include "stm32f10x.h"#include "bsp_led.h"#include "bsp_usart.h"//在此程序中,需要将bsp_usart.c中的NVIC中断部分注释掉否则报错int main(void){ uint8_t ch; USART_Config(); //配置串口 LED_GPIO_Config(); /...

2019-05-23 10:20:44 4633

原创 串口初始化结构体和固件库学习笔记

比较简单,初始化结构体就能完成大部分工作。USART初始化结构体typedef struct{ uint32_t USART_BaudRate; //波特率 BRR uint16_t USART_WordLength; //字长 CR1_M uint16_t USART_StopBits; //停止位 CR2_STOP uint16_t USART_...

2019-05-22 17:30:20 361

原创 串口通信学习笔记

串口通信协议简介物理层:规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。其实就是硬件部分。协议层:协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。其实就是软件部分。物理层232与TTL区别:TTL电平是从芯片里出来的0-3.3/5VRS232 ±15V 1是+15V 0是-15V1-RS232标准RS232标准串口通讯结构图:(DB9接口,9根针...

2019-05-21 19:40:12 387

翻译 通信的基本概念学习笔记

这个周末去无锡开了个会,啊,主持会务工作真的是巨累啊。想想最近还有三篇文章欠着,脑壳有点痛,又开始有压力了,有压力是好事,压力才能变成动力嘛。批话不多说,又开始干活了!数据传送方式:并行/串行数据通信方向:数据同步方式:1.同步时钟高电平时数据有效,如下图应该是011011011,对时钟要求高2.异步在帧里加入辅助符,起始位+数据主体+校验位+停止位在同步通讯中,数据信号...

2019-05-21 10:34:11 157

原创 SysTick系统定时器学习笔记

功能框图和优先级配置:SysTick:系统定时器, 24位,只能递减,存在于内核,嵌套在NVIC中,所有的Cortex-M内核的单片机都具有这个定时器。计时器原理:counter在时钟的驱动下,从reload初值开始往下递减计数到0,产生中断和置位COUNTFLAG标志。然后又从reload值开始重新递减计数,如此循环。SysTick定时时间计算1-t:一个计数循环的时间,跟reload...

2019-05-16 16:26:34 1111

原创 EXTI学习笔记—GPIO外部中断代码

*编程要点1-初始化要连接到EXTI的GPIO2-初始化EXTI用于产生中断/事件3-初始化NVIC,用于处理中断4-编写中断服务函数5-main函数 *c文件:#include "bsp_exti.h"static void EXTI_NVIC_Config(void) //static限定 只能被此c文件调用{ NVIC_InitTypeDef ...

2019-05-16 10:57:08 1597

原创 EXTI学习笔记—EXTI功能框图与EXTI初始化结构体

外部 中断/事件 控制器EXTIEXTI: External interrupt / event controller对应GPIO 有20根,GPIO端口16根通过外部中断配置寄存器配置。EXIT_IMR 大开关EXIT_SEIER 小开关中断框图:EXTI结构体:typedef struct{ uint32_t EXTI_Line; /*!...

2019-05-14 16:34:31 1301

原创 STM32中断应用总结 学习笔记

本章如无特别说明,异常就是中断,中断就是异常。ESR:中断服务程序中断嵌套:中断优先级高的中断打断中断优先级低的中断。复位优先级最高。中断类型:系统异常(内核)/外部中断(外设)------------------十个-------------------六十个core_cm3.h 内核寄存器映射misc.h 相应的固件库函数优先级设定: NVIC->IPRx优先级分组: S...

2019-05-14 11:17:10 378

原创 关于形参与实参 按值传递和按址传递一点总结

形参与实参:如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;从一定程度上讲,函数的作用就是根据不同的参数产生不同的返回值。C语言函数的参数会出现在两个地方,分别是函数定义处和函数调用处,这两个地方的参数是有区别的。形参(形式参数)在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。实参(实际参数)...

2019-05-13 16:58:04 2734 1

原创 RCC学习笔记-使用HSE与HSI配置系统时钟并使用MCO输出监控系统时钟

其实固件库函数都已写好了,要勤快点查阅才行。#include "bsp_rccclkconfig.h"void HSE_SetSysClk( uint32_t RCC_PLLMul_x ){ ErrorStatus HSEStatus; //声明HSE状态变量 //设定的两个状态值 ERROR=1,SUCCESS=!ERROR { //变量声明一定要贴着大括号 // 把RC...

2019-05-13 10:51:14 920 3

翻译 RCC学习笔记—讲解系统时钟配置函数SetSysClockTo72()

static void SetSysClockTo72(void){ __IO uint32_t StartUpCounter = 0, HSEStatus = 0; /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration ---------------------------*/ /* 使能 HSE ,8M*/ ...

2019-05-10 15:53:38 1263

原创 RCC学习笔记—使用HSE或HSI配置时钟

HSE:8M倍频9倍成72M当HSE故障则HSI被选为系统时钟,系统被配置成8M时钟时钟配置寄存器RCC_CFGR配置分频。CSS:时钟安全系统。当HSE发生故障,时钟失效事件被送到高级定时器TIM1&TIM8的刹车输入端,产生时钟安全中断CSSI。允许软件完成营救。...

2019-05-09 15:28:17 341

原创 启动文件讲解笔记

启动文件作用:- 初始化堆栈指针SP- 初始化PC指针- 初始化中断向量表- 配置系统时钟- 调用C库函数_main,最终去到C的世界;1-栈配置,用于变量,函数调用Stack_Size EQU 0x00000400 ; 1KB AREA STACK, NOINIT, READWRITE, ALIGN=3 ;名字叫ST...

2019-05-09 11:33:54 117

原创 位带操作 学习笔记

位带操作:位操作就是可以单独的对一个比特位读和写,这个在 51 单片机中非常常见。 51 单片机中通过关键字 sbit 来实现位定义,STM32 没有这样的关键字,而是通过访问位带别名区来实现。在 STM32 中,有两个地方实现了位带,一个是 SRAM 区的最低 1MB 空间,令一个是外设区最低 1MB 空间。这两个 1MB 的空间除了可以像正常的 RAM 一样操作外,他们还有自己的位带别名区,...

2019-05-08 16:52:48 1205

原创 固件库学习笔记 固件库简单操作

1.点亮LEDc文件:// bsp :board support package 板级支持包#include "bsp_led.h"//.h文件中放的是宏,当以后需要修改硬件部分时,只需要修改宏就完事了,不需要在函数中修改void LED_GPIO_Config(void){ GPIO_InitTypeDef GPIO_InitStruct; ...

2019-05-08 11:59:07 247

原创 固件库学习笔记 是什么与固件库新建工程

总结一下是怎么把名字和寄存器联系起来的首先我们看看 51 中是怎么做的。 51 单片机开发中经常会引用一个 reg51.h 的头文件,下面我们看看他是怎么把名字和寄存器联系起来的:sfr P0 =0x80;sfr 也是一种扩充数据类型,点用一个内存单元,值域为 0~255。利用它可以访问 51 单片机内部的所有特殊功能寄存器。如用 sfr P1=0x90 这一句定义 P1 为 P1 端口在片...

2019-05-06 15:38:22 882

原创 固件库学习笔记 自己写库函数 固件库编程

1.定义结构体 以GPIOB为例#define GPIOB_BASE (APB2PERIPH_BASE + 0x0C00)typedef struct //定义结构体{ uint32_t CRL; uint32_t CRH; uint32_t IDR; uint32_t ODR; uint32_t BSRR; uint32_t BRR; uint32...

2019-05-05 11:37:08 1329

原创 GPIO学习笔记功能框图及寄存器映射

GPIO-general purpose input output是软件可以控制的引脚 1/0(12之间为反相器)IO口推挽输出:高电平推,低电平挽。一对MOS管控制,电流大,效率高25ma。开漏输出:只能输出低电平。高电平需要外部电路上拉。好处是,如果需要驱动5V元器件。只需要把VDD改成5V就可以。具有“线与”功能,一个为0,都为0。输出:GPIOx_ODR直接操作。GPI...

2019-04-30 15:31:58 905

原创 寄存器学习笔记点亮LED

前期学习了基础的编程知识,MSP430基本操作。原来那个头文件里写的东西叫寄存器映射,可通过映射出来的名称直接操作寄存器。现在开始学习STM32最基础的寄存器操作。GPIOx_ODR:output data register,与MSP430基本一致,略有不同430里面需要设置DIR方向寄存器以及OUT输出寄存器:P1DIR|=BIT0; //P1.0输出P1OUT&=~BIT0...

2019-04-29 17:19:32 423

转载 单片机之整流电路

之前想用MSP430采集音频信号,用三极管开关来驱动LED电平灯。但是那么问题来了,通过MSP430ADC采样出来的信号全是0电位,但接上耳机又有声音。那么,可以得知,音频信号输出为交流信号,或许adc采样速率更快一点是可以采到一些有意义的信号的,但在这个项目中显然不行。故需要搭建整流电路将交流信号变为直流信号。常见有三种:半波整流半波整流电路只有一只二极管,这种特点决定了输出的电压...

2019-04-29 10:43:30 1488

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除