
stm32
主要是基于stm32f103系列的开发板。
身在江湖的郭大侠
念念不忘,必有回响
展开
-
蓝桥杯嵌入式第十届国赛程序
第十届决赛题目考察的知识点较多,题目较为综合,主要考察两路adc,pwm输入捕获,ds18b20,数码管等。两路ADC,本程序采用注入通道。工程结构init.c#include "stm32f10x.h"#include "lcd.h"#include "init.h"#include "i2c.h"#include "stdio.h"void GPIO_In...原创 2020-04-04 13:03:36 · 1860 阅读 · 3 评论 -
蓝桥杯嵌入式第九届国赛程序----电子秤
第九届决赛题目主要考察了adc按键、串口、adc等。其中要用到两个adc通道(一个用于称重,一个用于测量adc按键)可以用2路规则通道(必须使用DMA),也可以1路使用规则通道,1路使用注入通道,这里采用后者。工程结构init.c#include "stm32f10x.h"#include "lcd.h"#include "init.h"#include "i2c.h"...原创 2020-04-04 12:29:18 · 1070 阅读 · 2 评论 -
蓝桥杯嵌入式第八届国赛程序----频率控制器
第八届决赛题目考察的知识主要是adc和频率发生和捕获。不知是不是第一次用到扩展板的缘故,考察的知识点不算多。工程结构init.c (需要注意的是,因为用到两路adc,这里我们采用注入通道的方法,可以参考前文)#include "stm32f10x.h"#include "lcd.h"#include "init.h"#include "i2c.h"#include "s...原创 2020-04-04 12:10:11 · 811 阅读 · 0 评论 -
蓝桥杯嵌入式第七届国赛程序----温、湿度监控设备
本届国赛题目较为综合,涉及adc、串口、输入捕获、输出比较等。工程结构init.c#include "stm32f10x.h"#include "lcd.h"#include "init.h"#include "i2c.h"void GPIO_Int(void){ GPIO_InitTypeDef GPIO_InitStructure; ADC_InitType...原创 2020-04-04 11:35:46 · 789 阅读 · 0 评论 -
DS18B20温度传感器程序设计
本程序对应的开发板为蓝桥杯嵌入式开发板stm32f103rbt6,为中型mcu。DS18B20是单线接口数字温度传感器,具体特征如下图。DS18B20包括寄生电源电路、64位ROM和单线接口电路、暂存器、EEPROM、8位CRC生成器和温度传感器等。寄生电源电路可以实现外部电源供电和单线寄生供电,64位ROM中存放的48位序列号用于是吧同一单线 上连接的多个DS18b20...原创 2020-04-04 01:38:09 · 4956 阅读 · 2 评论 -
DHT11温湿度传感器程序设计
本程序对应的开发板为蓝桥杯嵌入式开发板stm32f103rbt6,为中型mcu。DHT11是单线接口数字温湿度传感器,温度测量范围是0~50℃,湿度测量范围是20%~90%RH,温度测量精度是±2℃,湿度测量精度是±5%RH。DHT11包含一个电阻式感湿元件和一个NTC(负温度系数)测温元件,通过双向单线输出温湿度数据,一次数据输出为40位(高位在前,大约需要4ms),数据格式为:8位湿度...原创 2020-04-04 01:23:11 · 7225 阅读 · 0 评论 -
adc键盘
本程序对应的开发板为蓝桥杯嵌入式开发板stm32f103rbt6,为中型mcu。开发板的矩阵键盘采用adc实现,电路图如下通过测量adc测量电压从而得出按键位置。这里给出一个各按键对应的电压值和转换值的表[转换值=4095*电压值/(10000+电压值)]按键 s1 s2 s3 s4 ...原创 2020-04-04 01:08:40 · 1847 阅读 · 0 评论 -
数码管显示
本程序对应的开发板为蓝桥杯嵌入式开发板stm32f103rbt6,为中型mcu。嵌入式竞赛开发板上的3位数码管是共阴极静态显示,使用输出锁的8位移位寄存器74LS595驱动,其引脚功能如下硬件连接P4.1(PA1)-P3.1(SER)P4.2(PA2)-P3.2(RCK)P4.3(PA3)-P3.3(SCK)同时断开J1.3(PA3)-J2.3(RXD2)J1.4(...原创 2020-04-04 00:23:15 · 914 阅读 · 0 评论 -
矩形波输出与输入捕获
本程序对应的开发板为蓝桥杯嵌入式开发板stm32f103rbt6,为中型mcu。本程序用TIM1通道2(PA9)输出1kHz、占空比为25%的矩形波,并用TIM2(PA1)测量矩形波周期和脉冲宽度。初始化程序//TIM1通道2(PA9)输出矩形波初始化子程序 频率1kHz,(72000000/(999+1)*(71+1))占空比25% (249+1)/(999+1)void TIM...原创 2020-04-04 00:04:09 · 894 阅读 · 0 评论 -
嵌入式实现双路adc通道转换
本程序对应的开发板为蓝桥杯嵌入式开发板stm32f103rbt6,为中型mcu。当涉及两路甚至多路adc通道时,常用的方法有两种dma方法和注入通道,本文采用后者。adc初始化void ADC_Config(void){ ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RC...原创 2020-04-03 11:22:42 · 1051 阅读 · 0 评论 -
蓝桥杯嵌入式独立按键——实现长短按
前文模板用到的是按键实现方法较为简单,但若是涉及长短按,还是建议如下的方法。//按键初始化void Key_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitSt...原创 2020-04-03 00:24:00 · 1579 阅读 · 0 评论 -
stm32各种输出的区别
最近在看数据手册的时候,发现在 Cortex-M3 里,对于 GPIO 的配置种类有 8 种之多: (1)GPIO_Mode_AIN模拟输入 (2)GPIO_Mode_IN_FLOATING浮空输入 (3)GPIO_Mode_IPD下拉输入 (4)GPIO_Mode_IPU上拉输入 (5)GPIO_Mode_Out_OD开漏输出 (6)GPIO_Mode_Out...原创 2019-03-21 19:49:59 · 1449 阅读 · 0 评论 -
定时器pwm输出模式小结
对于pwm输出模式共有以下几种模式①、TIM_OCMode_Timing ②、TIM_OCMode_Active ③、TIM_OCMode_Inactive ④、TIM_OCMode_Toggle ⑤、TIM_OCMode_PWM1 ...原创 2019-03-21 20:23:25 · 6028 阅读 · 0 评论 -
ESP8266_WIFI_led控制
本代码主要基于简单的lua代码实现联网发送指令从而控制led的亮灭print("set up wifi mode")wifi.setmode(wifi.STATION)wifi.sta.config{ssid="ghj",pwd="12345678"} --wifi模块连接到网络wifi.sta.connect()tmr.alarm(1,1000,1,function()i...原创 2018-10-07 20:40:38 · 633 阅读 · 0 评论 -
简单超声波测距
用到模块 hc-sr04超声波模块,stm32开发板本实验通过超声波测距模块得到长度 直接打印到窗口显示,故主要用到定时器函数,串口函数hcsr04.c/* 只需要提供一个 10uS以上脉冲触发信号,该模块内部将发出8个 40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。 由此通过发射信号到收到的回响信号时间间隔可以计算得...原创 2018-10-06 19:36:53 · 4604 阅读 · 7 评论 -
ESP8266
NODEMCU官方网站 http://www.nodemcu.com/index_cn.html固件下载地址 https://github.com/nodemcu/nodemcu-firmware/releasesNODEMCU一键烧录软件下载地址 https://github.com/nodemcu/nodemcu-flasherESP8266模块最小系统接线后,将GPIO0接GN...转载 2018-10-02 22:29:08 · 520 阅读 · 0 评论 -
stm32_简单蓝牙通信
本代码主要为利用串口通信完成简单蓝牙通信,用到模块为:hc-05、stm32、tftlcd显示屏lcd函数#include "lcd.h"#include "stdlib.h"#include "font.h" #include "usart.h" #include "delay.h" //LCDµÄ»±ÊÑÕÉ«ºÍ±³¾°É« u16 POINT_C...原创 2018-09-16 23:20:29 · 1463 阅读 · 0 评论 -
printf,sprintf,vsprintf 区别
有C语言写作历史的程序员往往特别喜欢printf 函数。即使可以使用更简单的命令(例如puts),但printf 出现在Kernighan和Ritchie的「hello, world」程序中一点也不会令人惊奇。我们知道,增强后的「hello, world」最终还是需要printf 的格式化输出,因此我们最好从头开始就使用它。但有个坏消息:在Windows程序中不能使用printf。虽然Wind...转载 2018-09-15 23:42:53 · 1090 阅读 · 0 评论 -
stm32_建立工程篇
Step1:新建工程文件夹,命名为: new Step2:在文件夹new中建文件夹app, user并将STM32最新固件库v3.5文件夹内的Libraries文件夹拷贝至 new/ Step3:将STM32最新固件库v3.5/Project/STM32F10x_StdPeriph_Template内的: main.c, stm32...原创 2018-09-01 11:37:03 · 378 阅读 · 0 评论 -
数码管显示
实验目的: 弄清楚数码管原理, 掌握两位数及三位数码管的显示即动态扫描.代码:#include "stm32f10x.h"int main(){ u32 i,m,k,j;u32 a[10] = {0xc0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};//共阳极数码管编码表0-9 GPIO_InitTypeDe...原创 2018-07-28 19:31:52 · 611 阅读 · 0 评论 -
独立按键+数码管 计数器
实验目的:在熟练掌握按键与数码管原理,学会组合,设置三个按键,达到加一减一清零的目的.流程图:代码:#define KEY0_PRES 1 //KEY0??#define KEY1_PRES 2 //KEY1?? 定义按键返回值#define KEY2_PRES 3 //KEY2??#define KEY0 GPIO_ReadInputDataBi...原创 2018-07-28 19:33:46 · 4871 阅读 · 0 评论 -
矩阵按键的两种扫描方法
1.实验目的掌握两种按键扫描方法:行扫描,行列扫描(高低电平翻转)。2.实验流程图3.代码分析(1)行扫描 #include "stm32f10x.h"u16 keyz=0;u8 a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};void del...原创 2018-07-28 19:37:11 · 11109 阅读 · 0 评论 -
计算器 矩阵键盘+数码管
1.实验目的熟练掌握矩阵键盘与数码管,并做出简单的计算器2.实验流程图3.代码分析(1)主函数int main(){ u16 flag=0,temp=0xf0; int32_t dat=0,dat1=0; //被处理数1 , 2 u32 n1,n2; ...原创 2018-07-28 19:43:27 · 5308 阅读 · 3 评论 -
stm32实验1_流水灯
实验1-流水灯实验目的 :掌握点亮led灯的方法,并且学会使用库函数,熟练之余,玩出花样.流程图:代码及其分析 //寄存器方法//#include "stm32f10x.h"//int main()// {// u32 i,j;// RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOA, ENABLE); //开启时钟...原创 2018-07-21 11:50:12 · 2988 阅读 · 1 评论 -
延时的两种方法
1.中断延时#include "stm32f10x.h"static __IO u32 TimingDelay; //可读写的32位静态变量 void SysTick_Init(void) //SysTick 初始化 函数{ if(SysTick_Config(SystemCoreClock/1000)) ...原创 2018-08-04 15:10:16 · 4376 阅读 · 0 评论 -
串口模板
本实验主要实现向串口发送数据串口返回相同数据,代码简单主要供做模板,为以后复杂实验提供基础: #include "stm32f10x.h" void My_USART_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; //配置GPIO端口初始化函数 USART_InitTypeDef USART_InitStruct; /...原创 2018-08-04 21:46:37 · 330 阅读 · 0 评论 -
STM32延时函数的三种方法——最好掌握第三种
单片机编程过程中经常用到延时函数,最常用的莫过于微秒级延时delay_us( )和毫秒级delay_ms( )。1.普通延时法这个比较简单,让单片机做一些无关紧要的工作来打发时间,经常用循环来实现,不过要做的比较精准还是要下一番功夫。下面的代码是在网上搜到的,经测试延时比较精准。//粗延时函数,微秒void delay_us(u16 time){ u16 i=0;...转载 2018-08-05 11:04:58 · 57081 阅读 · 7 评论 -
简单的外部中断
本次实验用到蜂鸣器,按键,led模块,附上各模块的初始化函数//led初始化#include "led.h"void LED_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_GPIOE, ENABLE);...原创 2018-08-13 12:19:39 · 443 阅读 · 0 评论 -
STM32是如何进入中断服务函数xxx_IRQHandler的
今天在看stm32的中断,一时间不理解stm32主函数是如何进入中断函数的,按C编程的理解,会有个特定的入口之类的,但是看demo过程中没有发现入口。 以串口中断服务函数void USART1_IRQHandler(void) 为例,首先用到串口中断,需要先设定串口中断初始化以及串口初始化,另外void USART1_IRQHandler(void) 中断服务函数也应该写好。发现在s...转载 2018-08-13 12:22:36 · 2931 阅读 · 0 评论 -
【STM32】串口通信基本原理(超基础、详细版)
STM32F1xx官方资料:《STM32中文参考手册V10》-第25章通用同步异步收发器(USART) 通信接口背景知识设备之间通信的方式一般情况下,设备之间的通信方式可以分成并行通信和串行通信两种。它们的区别是:并、串行通信的区别 并行通信 串行通信 传输原理 数据各个位同时传输 数据按位顺序传输 优点 速度快 占用引脚资...转载 2018-08-13 15:45:14 · 3989 阅读 · 0 评论 -
【常用模块】HC-05蓝牙串口通信模块使用详解(实例:手机蓝牙控制STM32单片机)
HC-05蓝牙串口通信模块应该是使用最广泛的一种蓝牙模块之一了。为什么呢?因为HC05模块是一款高性能主从一体蓝牙串口模块,可以不用知道太多蓝牙相关知识就可以很好的上手。说白了,只是个蓝牙转串口的设备,你只要知道串口怎么编程使用,就可以了,实现了所谓的透明传输。但是就是这么一个很常见的模块,网上很多的博客写的都是错的,或者都是很不详细的。所以本文就介绍一下这款蓝牙通信模块的使用,包括蓝...转载 2018-08-13 15:47:15 · 15954 阅读 · 10 评论 -
浅谈PWM控制电机
先简单说说这几种模式(1)双极模式,即电枢电压极性是正负交替的, 优点:能正反转运行,启动快,调速精度高,动态性能好,调速静差小,调速范围大,能加速,减速,刹车,倒转,能在负载超过设定速度时,提供反向力矩,能克服电机轴承的静态摩擦力,产生非常低的转速。 缺点:控制电路复杂。(2)单极模式,即电机电枢驱动电压极性是单一的 优点:启动快,能加速,刹车,能耗制动,能量反馈,调速性能...转载 2018-08-13 21:29:51 · 7990 阅读 · 0 评论 -
【蓝桥杯】嵌入式类--专用开发板分析
前言:为推动软件和电子信息技术产业的发展,促进电子和软件专业技术人才的培养,向软件和电子信息技术行业输送具有创新能力和实践能力的高端人才,提升高校毕业生的就业竞争力,全面推动行业发展及人才培养进程,自2009年起,工业和信息化部人才交流中心已连续成功举办四届“全国电子专业人才设计与技能大赛”以及“全国软件专业人才设计与创业大赛”,大赛的举办得到了教育部、工业和信息化部有关领导的高度重视及相关司...转载 2018-08-25 11:00:50 · 4843 阅读 · 0 评论 -
蓝桥杯嵌入式参赛笔记(基于stm32竞赛板)
虽然这个充满信心的比赛最后由于一些***的原因自己几乎没有做交的白卷,但通过再一次的学习stm32,自己还是有不少的收获。 现把自己当时的笔记复制到这,作为一个记录以及交流,同时也作为第一篇博客: 一、 新建工程略有不同的是程序的下载方法,需要装驱动。。。 二、 LED电路原理图: 比赛板用的是stm32f103rb芯片,64...转载 2018-08-25 11:02:30 · 2575 阅读 · 1 评论 -
流水灯按键
实验目的:掌握按键的使用,包括按键的翻转 流程图:代码:#define KEY0_PRES 1 //KEY0?? #define KEY1_PRES 2 //KEY1?? #define KEY2_PRES 3 //KEY2??#define KEY0 GPIO_ReadInputDataBit(G...原创 2018-07-28 19:30:09 · 1622 阅读 · 0 评论