- 博客(42)
- 资源 (3)
- 收藏
- 关注
原创 晨起管家----蓝牙传图V2.5
蓝牙传图V2.5实现的功能SD卡Keil主函数Pycharm总结经验实现的功能操作步骤:预操作:单片机接上电源,蓝牙模块连接到电脑上,两个蓝牙模块慢速闪烁后,运行pyhton程序应用操作:按下KEY0按键内部运行大概:数据存储阶段:按下KEY0按键之后,摄像头拍摄到一张图片,512字节512字节地把数据存储到SD卡里,延时1秒后再次拍摄,就这样拍摄10张图片数据传输阶段:从SD卡中读取数据,之后通过蓝牙串口配合电脑运行的python程序传输到电脑的Bluetooth文件夹里SD卡增加了SD
2021-09-13 21:24:46
419
原创 晨起管家----蓝牙传图
蓝牙传图蓝牙蓝牙模块蓝牙模块的AT指令使用蓝牙模块配置参考的博文: stm32调用OV7670获取图像并通过蓝牙传输至PC.在回家的前一天,项目负责人找到我,给我介绍了该项目的大概情况,让我解决他们目前想要解决的一个问题(用无限的方式来传输图片到电脑或手机上)。比较感兴趣,就接活了。蓝牙蓝牙模块使用了两个蓝牙模块。一个是在实验室里找到的前辈得HC-05模块(蓝牙模块一)另一个是正点原子的(蓝牙模块二)蓝牙模块的AT指令使用将USB TO TTL模块和蓝牙模块相连插在电脑上我使用正点原子给
2021-08-27 10:11:41
1488
2
原创 STM32入门(二十六)----SPI—读写串行FLASH
SPI—读写串行FLASHSPI协议SPI物理层的特点SPI的协议层SPI基本通讯过程通讯的起始和停止信号数据有效性CPOL/CPHA及通讯模式STM32的SPI特性及架构STM32的SPI外设STM32的SPI架构通讯引脚时钟控制逻辑数据控制逻辑整体控制逻辑通讯过程SPI初始化结构体SPI—读写串行FLASHSPI协议SPI协议是由摩托罗拉公司提出的通讯协议(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。它被广泛地使用在ADC、LCD等设备与
2021-08-07 14:27:36
465
原创 STM32入门(二十五)----高级定时器
高级定时器定时器高级定时器高级定时器GPIO高级定时器功能框图时钟源内部时钟源外部时钟1外部时钟2内部触发输入内部触发连接TIM1为TIM2提供时钟控制器时基单元预分频器计数器(上/下/两边)自动重装载寄存器重复计数器![在这里插入图片描述](https://img-blog.csdnimg.cn/b3eb647913274c0f94393638bde22a44.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text
2021-08-07 14:27:09
5086
原创 STM32入门(二十四)--基本定时器
基本定时器定时器简介二级目录三级目录定时器简介定时器功能 :定时、输出比较、输入捕获、互补输出定时器分类 :基本定时器、通用定时器、高级定时器定时器资源 :F103系列有2个高级定时器TIM1和TIM8、4个通用定时器TIM2/3/4/5、2个基本定时器TIM6和TIM7二级目录三级目录...
2021-08-07 14:26:57
509
原创 STM32入门(二十三)----EEPROM
EEPROMI2C协议I2C物理层的特点I2C的协议层I2C基本读写过程通讯的起始和停止信号数据有效性地址及数据方向响应STM32的I2C特性及架构通讯引脚时钟控制逻辑数据控制逻辑整体控制逻辑STM32的I2C通讯过程主发送器主接收器I2C初始化结构体和库函数I2C——读写EEPROMI2C协议I2C物理层的特点I2C 通讯协议(Inter-Integrated Circuit)是由Phiilps公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要USART、CAN等通讯协议的外部收发设备,现在
2021-08-07 14:26:29
3618
原创 STM32入门(二十二)----常用存储器
常用存储器存储器的种类RAM存储器非易失性存储器存储器的种类易失性存储器: 掉电数据会丢失 读写速度较快 内存非易失性存储器:掉电数据不会丢失 读写速度较慢 机械硬盘RAM存储器RAM是“Random Access Memory”的缩写,被译为随机存储器。所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与这段信息所在的位置无关。这个词的由来是因为早期计算机曾使用磁鼓作为存储器,磁鼓是顺序读写设备,而RAM可随读取其内部任意地址的数据,时间都是相同的,因
2021-08-07 14:26:03
598
原创 STM32入门(二十一)----电容触摸
电容触摸电容触摸原理硬件连接实验程序程序思路电容触摸原理RC电路充放电公式Vt = V0+(V1-V0)* [1-exp(-t/RC)]V0 为电容上的初始电压值;V1 为电容最终可充到或放到的电压值;Vt 为t时刻电容上的电压值。硬件连接R:外接电容充放电电阻。Cs:TPAD和PCB间的杂散电容。Cx:手指按下时,手指和TPAD之间的电容。开关:电容放电开关,由STM32 IO口代替。检测电容触摸按键过程TPAD引脚设置为推挽输出,输出0,实现电容放电到0。TPAD引脚设
2021-08-07 14:25:09
909
原创 STM32入门(十九)----通用定时器
通用定时器理论三种定时器通用定时器的特点通用定时器的工作过程实践理论STM32F103ZET6有4个通用定时器,2个高级定时器,2个基础定时器三种定时器共同点:都是16位;计数器模式都可以向上,向下,向上/向下;都可以产生DMA请求。区别:高级定时器:TIM1、TIM8 捕获/比较通道4 有互补输出 可以用于带死区控制盒紧急刹车,可用于PWM电机控制通用定时器:TIM2~TIM5 捕获/比较通道4 没有互补输出 通用 定时器计数,PWM输出,输入捕获,输出比较基本定时器:
2021-08-07 14:23:33
540
原创 STM32入门(十八)----ADC
ADC原理ADC简介ADC功能框图实践配置路线原理ADC简介参考资料:STM32参考书手册 11ADC :Analog to Digital,模拟数字转换器三个独立的ADC 1 / 2 / 3;分辨率为12位;每个ADC具有18个通道,其中外部通道16个;ADC的输入时钟不得超过14MHz。(STM32 6 RCC的图8)ADC功能框图输入电压:VREF- ≤ VIN ≤ VREF+决定输入电压的引脚:VREF-、 VREF+ 、 VDDA 、 VSSAVSSA 和 VREF-接
2021-08-07 14:22:56
413
原创 STM32入门(十六)----串口通信
串口通信通信的基本概念串行和并行通信全双工、半双工和单工同步和异步通信的速率串口通信串口通信协议简介RS232标准USB转串口原生的串口到串口串口功能框图固件库结构体和函数程序中断接收和发送串口控制LED亮灭通信的基本概念串行和并行通信数据传送方式串行与并行通信的特性对比并行:SDIO(4位,SD卡)、FSMC(16,液晶或显存)、W5100串行:USART、I2C、SPI、LSB、MSB、W5500全双工、半双工和单工数据通信方向同步和异步在同步通讯中,数据信号所传输的内容绝
2021-07-17 13:37:06
679
原创 STM32入门(十五)----SysTick系统定时器
SysTick系统定时器SysTick简介SysTick框图SysTick定时实验程序SysTick简介SysTick:系统定时器,24位,只能递减,存在于内核,嵌套在NVIC中,所有的Cortex-M内核的单片机都具有这个定时器。《STM32参考手册》里的一句话:关于Cortex-M3核心、 SysTick定时器和NVIC的详细说明,请参考另一篇ST的文档和一篇ARM的文档:《STM32F10xxx Cortex-M3编程手册》和《Cortex™-M3技术参考手册》。SysTick框图co
2021-07-16 14:30:27
536
原创 STM32入门(十四)----EXTI
EXTIEXTI简介EXTI功能框图EXTI功能框图讲![在这里插入图片描述](https://img-blog.csdnimg.cn/20210715132948350.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2MDcwMTQ3,size_16,color_FFFFFF,t_70)EXTI简介EXTI:External int
2021-07-15 20:30:07
765
原创 STM32入门(十三)----中断概览
中断概览中断类型NVIC简介优先级的定义中断编程中断类型系统中断,体现在内核水平。外部中断,体现在外设水平。STM32中文参考手册9.1中断优先级的数字越小,优先级越高。复位的优先级最高。PS:中断和异常在本文是一个意思。NVIC简介Nested vectored interrupt controller (NVIC)嵌套向量中断控制器,属于内核外设,管理着包括内核和片上所有外设的中断相关的功能。两个重要的库文件:core_cm3.h和misc.hSTM32F10xxx Corte
2021-07-15 12:11:49
205
原创 STM32入门(十二)----RCC
RCC: Reset and clock control 复位和时钟控制时钟树在STM32中文参考手册中6.2时钟中的时钟树图HSE时钟HSE:High Speed External Clock signal,即高速的外部时钟。来源:无源晶振(4-16M),通常使用8M。(正点用的也是8M)外部晶体/陶瓷谐振器(HSE晶体)4~16Mz外部振荡器可为系统提供更为精确的主时钟。相关的硬件配置可参考图9,进一步信息可参考数据手册的电气特性部分。在时钟控制寄存器RCC_CR中的HSERDY位用
2021-07-15 10:04:01
1050
原创 STM32入门(十)----位带操作(GPIO的输入和输出)
外设位带区与外设位带别名区的地址转换:AliasAddr=0x4200 0000+(A-0x4000 0000)*32+n*4;SRAM位带区与SRAM位带别名区的地址转换:AliasAddr=0x2200 0000+(A-0x2000 0000)*32+n*4;A:表示我们要操作的那个位所在的寄存器的地址;n:位号每一个字节都膨胀为一个字(4个字节)((addr&0xF000 0000)+0x0200 0000+((addr&0x00FF FFFF)<<5)+(bitnum)<<2)
2021-07-13 18:38:00
754
原创 STM32入门(九)----GPIO输入(按键检测)
硬件消抖:以KEY1为例当按键没有按下的时候,PA0接地,输入0。当按键按下的时候,右边的电流通过,经过电容之后逐渐稳定,没有受到按键抖动的影响。所以要将将引脚设置为上升沿触发。这个是最简单的按键结构,没有用到硬件消抖,需要软件消抖。就像是在51单片机里面软件消抖一样,需要延时20ms左右再去判断按键状态。下面的代码是适用于这个原理图的(正点的板子)。bsp_led.h#ifndef __BSP_LED_H#define __BSP_LED_H#include "stm32f1
2021-07-13 15:49:25
733
原创 STM32入门(八)----GPIO输出(使用固件库点亮LED)
main.c#include "stm32f10x.h"#include "bsp_led.h"int main(void){LED_GPIO_Config();}bsp_led.h#ifndef __BSP_LED_H#define __BSP_LED_H#include "stm32f10x.h"#define LED_0_GPIO_PIN GPIO_Pin_5 #define LED_0_GPIO_PORT GPI
2021-07-13 08:59:56
770
原创 STM32入门(七)----新建工程(固件库版本)
在文件夹中新建如下文件夹在Libraaries中添加CMSIS中只需要留下STM32F10x_…中需要留下在User中添加Doc中添加readme.txt然后就是New Project…把NewGroup重命名并且按下面的操作找到所有c文件所对应的头文件所在的文件夹USE_STDPERIPH_DRIVERSTM32F10X_HD注意是用英文的逗号将他们俩分开。要勾上Hex文件用来编译Browse information用来生产调试信息...
2021-07-12 16:34:07
149
原创 STM32入门(六)----初识固件库
1-汇编编写的启动文件startup_stm32f10x_hd.s:设置堆栈指针、设置PC指针、初始化中断向量表、配置系统时钟、调用C库函数_main最终去到C的世界。stm32中文参考首手册中有介绍小/中/大/互联型产品。2- 时钟配置文件system_stm32f10x.c:把外部的时钟HSE=8M,经过PLL倍频成72MHz3-外设相关的stm32f10x.h:实现内核之外的外设的寄存器映射xxx:GPIO、UART、I2C、SPI、FSMCstm32f10x_xx.c:外设的驱动函
2021-07-12 15:00:38
322
原创 STM32入门(五)----自己写库(构建库函数雏形)
stm32f103x.h#ifndef __STM32F10X_H#define __STM32F10X_H//用来存放STM32寄存器映射的代码//外设 peripheral#define PERIPH_BASE ((unsigned int)0x40000000)#define APB1PERIPH_BASE PERIPH_BASE#define APB2PERIPH_BASE (PERIPH_BASE+0x10000)#define AHBPERIPH_BAS
2021-07-12 13:28:58
804
原创 STM32入门(四)----点亮一个LED(使用寄存器)
GPIO简介GPIO——general purpose input output是通用输入输出端口的简称,简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。可以在数据手册的3引脚定义中查找各个GPIO的功能。GPIO框图注意事项1、输入的电压不能超过VDD太多2、不能直接接电机推挽输出比如ODR输出了1,经过反相器,变为0,后面只有PMOS管导通,VDD输出,所以输出1。(推)比如ODR输出了0,经过反相器,
2021-07-11 16:19:18
331
原创 STM32入门(三)----点亮一个LED(直接取地址)
启动文件STM32F103ZET6是属于大容量的器件,启动文件应该选择startup_stm32f10x_hd.sstm32启动文件的选择.添加之后编译,会报错:Rebuild target 'Target 1'compiling main.c...main.c(11): warning: #1-D: last line of file ends without a newline //}main.c: 1 warning, 0 errorsassembling startup_stm
2021-07-11 12:51:53
919
原创 STM32入门(二)----寄存器
**ICode总线**ICode中的I表示Instruction,即指令,我们写好的程序编译之后都是一条条指令存放在FLASH中,内核要读取这些指令来执行程序就必须通过ICode总线,它几乎每时每刻都需要被使用,它是专门用来取指令的。**Dcode总线**DCode中的D表示Data,即数据,这条总线是用来取数据的。我们在写程序的时候,数据有常量和变量两种,变量就是固定不变的,用C语言中的const关键字修饰,是放到内部的FLASH当中的,变量是可变的,不管是全局变量还是局部变量都放在内部的SRAM。
2021-07-10 21:44:35
4065
1
原创 STM32入门(一)----初识STM32
STM32属于一个微控制器,自带了各种常用通信接口,功能强大SDIO、FSMC、I2S、ADC、DAC、GPIO、串口1、串口:UASRT,用于跟串口接口的设备通信,比如:USB转串口模块、ESP8266WIFI,GPS模块,GSM模块,串口屏、指纹识别模块2、内部集成电路:I2C,用于跟I2C接口的设备通信,比如:EEPROM,电容屏,MPU6050陀螺仪、0.6寸OLED模块3、串行通信接口:SPI,用于跟SPI接口的设备通信,比如:FLASH,W5500、VS1053
2021-07-09 17:41:46
1372
1
原创 单片机----第八届蓝桥杯国赛
第八届蓝桥杯国赛我的解答iicmain我的解答iiciic.h#ifndef __IIC_H__#define __IIC_H__void IIC_Start(void); void IIC_Stop(void); bit IIC_WaitAck(void); void IIC_SendAck(bit ackbit); void IIC_SendByte(unsigned char byt); unsigned char IIC_RecByte(void); void AT2
2021-05-19 11:26:06
417
原创 单片机----第七届蓝桥杯国赛
第七届蓝桥杯国赛我的解答iicds1302main我的解答iiciic.h#ifndef __IIC_H__#define __IIC_H__void IIC_Start(void); void IIC_Stop(void); bit IIC_WaitAck(void); void IIC_SendAck(bit ackbit); void IIC_SendByte(unsigned char byt); unsigned char IIC_RecByte(void); vo
2021-05-18 19:09:01
161
原创 单片机----第六届蓝桥杯国赛
第六届蓝桥杯国赛我的解答iicmain我的解答iiciic.h#ifndef __IIC_H__#define __IIC_H__void IIC_Start(void); void IIC_Stop(void); bit IIC_WaitAck(void); void IIC_SendAck(bit ackbit); void IIC_SendByte(unsigned char byt); unsigned char IIC_RecByte(void); void AT2
2021-05-17 20:53:43
167
原创 蓝桥杯客观题知识点汇总
蓝桥杯客观题知识点汇总语句含义xdata外部扩展RAM(0x0000~0xffff)pdata外部扩展RAM低256字节(0x00~0xff)idataRAM全256字节,较慢,间接寻址(0x00~0xff)dataRAM低128字节,响应最快,直接寻址(0x00~0x7e)bdata片内RAM,位寻址code写在ROM里,节约RAM,不需要修改名称特点UARTTXDRXD 全双工、异步 点对点IICSC
2021-05-16 13:47:56
651
1
原创 单片机----第四届蓝桥杯国赛
第四届蓝桥杯国赛题目我的解答DS1302iicTimer主程序总结题目我的解答DS1302DS1302.h#ifndef __DS1302_H__#define __DS1302_H__extern unsigned char DS1302_Time[3];void DS1302_Init();void SetTime();void ReadTime();#endifDS1302.C#include <STC15F2K60S2.H>#define DS130
2021-05-15 14:51:59
485
1
原创 单片机----第三届蓝桥杯国赛
第三届蓝桥杯国赛题目我的解答DS1302iic主程序总结题目我的解答DS1302DS1302.h#ifndef __DS1302_H__#define __DS1302_H__extern unsigned char DS1302_Time[3];void DS1302_Init();void SetTime();void ReadTime();#endifDS1302.c#include <STC15F2K60S2.H>#define DS1302_
2021-05-15 14:19:30
247
原创 单片机入门(五)----蜂鸣器提示音 播放音乐
蜂鸣器提示音 播放音乐蜂鸣器提示音播放音乐蜂鸣器提示音Buzzer.c#include<STC15F2K60S2.H>//蜂鸣器端口sbit Buzzer=P0^6;/** * @brief 蜂鸣器的私有延迟函数 100us一个周期 * @param x00us 就是几百微秒 * @retval 无 */void Buzzer_Delay(unsigned char x00us) //@12.000MHz{ unsigned char
2021-01-29 11:24:29
1387
1
原创 单片机入门(四)----I2C和AT24C02 用AT24C02做秒表
I2C和AT24C02I2CAT24C02秒表I2C下面展示一些 内联代码片。I2C.c#include<STC15F2K60S2.H>sbit I2C_SCL=P2^0;sbit I2C_SDA=P2^1;/** * @brief I2C开始 * @param 无 * @retval 无 */void I2C_Start(void){ I2C_SDA=1; I2C_SCL=1; I2C_SDA=0; I2C_SCL=
2021-01-29 10:45:25
629
2
原创 单片机入门(三)----DS1302扩展----BCD码
储存在DS1302中的数据是BCD码以4位二进制数来表示一位十进制数如0010 0011 的BCD码就是230100 1010由于第二位为10,就不合法表示为16进制就更明显了如0x10的BCD码就是10,0xA1不合法BCD码和10进制码的转换:BCD转换为十进制DEC:DEC=BCD/1610+BCD%16十进制DEC转换为BCD:BCD=DEC/1016+DEC%10...
2021-01-28 20:33:17
2206
原创 单片机入门(三)----DS1302时钟芯片 可调时钟
DS1302实现可调时钟本代码以DS1302、定时器、独立按键、LCD1602实现了可调时钟。原理图上的DS1302按键在上一讲讲过了LCD1602的代码以后再写下面展示一些 内联代码片。main.c#include<STC15F2K60S2.H>#include "DS1302.h"#include "LCD1602.h"#include "Key.h"#include "Timer0.h"//分别是键值 模式 时间类型设置选择 数据闪烁指示unsigned c
2021-01-28 20:20:16
3814
原创 单片机入门(二)----独立键盘,矩阵键盘,定时器
独立键盘,矩阵键盘,定时器独立键盘代码说明矩阵键盘代码说明定时器代码说明芯片手册一级目录独立键盘原理图J5短接帽接23有效按键为:S7 S6 S5 S4即独立按键模块化为Key.c#include<STC15F2K60S2.H>#include "Delay.h"/** * @brief 获取独立按键键码 * @param 无 * @retval 按下按键的键码,范围:0~4,无按键按下时返回值为0 */unsigned char Key
2021-01-27 17:53:01
629
原创 单片机入门(一)----LED
基础操作我将根据观看的B站视频写出适用于蓝桥杯单片机开发板的代码此专栏作为学习笔记51单片机入门教程.已经联系过up主了我的Gitee库.一.点亮一个LED先通过P2控制74HC138选中LED(即将Y4C置一)P2=0x80; //0x1000 0000然后就可以通过P0对LED灯进行操作(注意,P0口给0则亮,给1则灭)比如只想让L1亮则P0=0xFE;//0x1111 1110二.LED灯闪烁用延迟函数200ms亮200ms灭三.LED流水灯关键是这一步for(i=
2021-01-25 22:15:56
316
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人