stm32
文章平均质量分 53
stm32裸机学习 核心板
兔子警官QAQ
这个作者很懒,什么都没留下…
展开
-
STM32-I2C总线驱动程序分析
文章目录I2C硬件电路原理图I2C 简介添加相应的文件并添加进工程文件I2C驱动程序结构I2C驱动程序分析LM75A温度传感器电路原理图LM75A温度传感器驱动程序分析杨桃32学习笔记,本文图片文字皆为转述I2C硬件电路原理图I2C要点I2C总线是板级总线,连接线一般不超2米。电路连接:两线总线连接,1~10K上拉电阻,复用开漏模式。器件地址:每个器件都有唯一地址(7位16进制数),最多127个器件地址,新版I2C规范中最大器件地址数量可达1023个。所有设备与单片机需要共地。杨桃电原创 2021-04-22 16:58:07 · 2053 阅读 · 8 评论 -
STM32-RCC内部总线时钟设置程序详讲
文章目录RCC介绍回顾时钟复位和电源管理文章时钟树详解rcc程序详解以及涉及到的固件库函数杨桃32学习笔记,本文图片文字皆为转述RCC介绍RCC时钟复位和设置功能的缩写,它可以设置单片机的时钟输入源,以及cpu和内部总线的时钟频率。在我们之前学过的程序内开头都有rcc的设置程序,接下来就讲解rcc设置函数的内容从而结束stm32核心板的内容。回顾时钟复位和电源管理文章内部时钟都是RC,外部时钟都是晶体,高速都是提供系统时钟。8MHZ的高速内部时钟的通过多路选择器和倍频器达到不同频原创 2021-04-21 18:33:48 · 1624 阅读 · 3 评论 -
STM32-超级终端显示日历
文章目录示例程序烧录验证基于上一节程序修改修改main.c修改main.c中分和秒的显示细节杨桃32学习笔记,本文图片文字皆为转述示例程序烧录验证使用之前文章讲过的烧录软件烧录结束后,打开超级终端,按下回车弹出指令界面如下。按照提示输入相应格式的时间数据就可以把现在的时间写入,而不是rtc初始化的1970年,同时打印出换算出来的星期。基于上一节程序修改开启串口中断处理函数,中断服务函数不做修改和超级终端控制led中程序一致。修改main.c#include "st原创 2021-04-21 16:03:41 · 511 阅读 · 1 评论 -
STM32-RTC原理和驱动程序
文章目录RTC电路原理图RTC实现原理烧录示例文件的hex查看程序效果添加相应的文件并添加进工程文件杨桃32学习笔记,本文图片文字皆为转述RTC电路原理图RTC实现原理STM32的RTC只用一个32位计数器来计时,而不是用年月日时分秒的分组寄存器。通过设置可以让这个计数器1秒加1,从0-0XFFFFFFFF大约可计时136年。时间起点一般设置为1970-01-01 00:00:00 (因现有函数如此定义)如果要读当前的年月日时分秒,先读出32位RTC计数器值,然后以1970-01-0原创 2021-04-21 11:49:18 · 1680 阅读 · 0 评论 -
stm32固件库中文用户使用手册
固件库中文用户使用手册链接:[https://pan.baidu.com/s/1GP3K99Cfbuyt2Kh2TohmRA]提取码:5lky复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V5的分享原创 2021-04-20 17:21:52 · 1477 阅读 · 1 评论 -
STM32-超级终端串口控制程序
文章目录示例程序烧录验证基于上一节程序修改烧录验证杨桃32学习笔记,本文图片文字皆为转述示例程序烧录验证使用之前文章讲过的烧录软件烧录结束后,打开超级终端,按下回车弹出指令界面如下,按照提示可以输入命令进行控制led状态。基于上一节程序修改全局变量函数体内部的变量的作用域仅在该函数内,如果想要在别的文件和函数内调用该变量就需要定义全局变量。具体方法如下我们在超级终端输入的命令保存在,接收缓冲数组中,当我们按下回车的时候,程序就会在数组中查找我们输入的内容使能串口1中断原创 2021-04-20 17:06:12 · 2213 阅读 · 2 评论 -
STM32-USART控制led和蜂鸣器
文章目录示例程序烧录验证基于上一节程序修改超级终端串口软件的使用杨桃32学习笔记,本文图片文字皆为转述示例程序烧录验证在电脑端打开串口调试助手并向单片机输入1发送数据,接收区显示1:LED1 ON并且,单片机上的led1灯亮起。向单片机输入0发送数据,接收区显示 0:LED1 OFF并且,单片机上的led1灯熄灭。向单片机输入2发送数据,接收区显示 2:BUZZER 并且,单片机上的蜂鸣器响一下。此外,在单片机上按下按键KEY1和KEY2,接收区显示KEY1 KEY2。根据该程序我们可以通原创 2021-04-15 18:56:31 · 3162 阅读 · 1 评论 -
STM32-USART接收程序
文章目录对串口发送程序进行修改位接收编译烧录后结果为查询方式接收程序解读中断方式接收程序解读杨桃32学习笔记,本文图片文字皆为转述对串口发送程序进行修改位接收编译烧录后结果为查询方式接收程序解读//查询方式接收if(USART_GetFlagStatus(USART1,USART_FLAG_RXNE) != RESET){ //查询串口待处理标志位 a =USART_ReceiveData(USART1);//读取接收到的数据 printf("%c",a); //把收到的数据发送回原创 2021-04-15 16:34:09 · 842 阅读 · 0 评论 -
STM32-USART发送程序
文章目录硬件电路示例程序测试以及相关软件使用向工程添加usart相关文件USART库函数usart.c文件中uart_init函数解析usart.h文件修改main.c文件方法1,发送单个字符或者16进制数方法2,一个串口连续发送字符串方法3,多串口连续发送字符串杨桃32学习笔记,本文图片文字皆为转述硬件电路usb转ttl电路,电脑端安装好驱动便可以通过usb进行串口通讯。本次只用30脚和31脚TX(发送)和RX(接受),注意这两脚与PA9和PA10复用不能同时使用,而且定时器1的2和原创 2021-04-15 15:26:51 · 1625 阅读 · 5 评论 -
STM32-MIDI音乐播放程序
文章目录MIDI(Musical Instrument Digital Interface)乐器数字接口修改上次buzzer.c和buzzer.h修改上次main.c解读MIDI_PLAY函数烧写验证得到预期结果杨桃32学习笔记,本文图片文字皆为转述MIDI(Musical Instrument Digital Interface)乐器数字接口是20 世纪80 年代初为解决电声乐器之间的通信问题而提出的。MIDI是编曲界最广泛的音乐标准格式,可称为“计算机能理解的乐谱”。它用音符的数字控制信号来原创 2021-04-15 10:57:43 · 2193 阅读 · 1 评论 -
STM32蜂鸣器驱动程序
文章目录蜂鸣器硬件电路添加文件进入工程了解buzzer.c和buzzer.h修改main.c复制BUZZER_BEEP1.c修改参数尝试更多频率杨桃32学习笔记,本文图片文字皆为转述蜂鸣器硬件电路有源蜂鸣器:内置频率发生电路通电就能发出声音声音频率固定成本较高无源蜂鸣器:内部没有发生电路需要外部给予频率可产生不同频率声音成本低PB5输出高电平蜂鸣器断开PB5输出低电平蜂鸣器导通在不使用蜂鸣器的情况下,PB5给出高电平以免损坏蜂鸣器。由图示电路可知,PB5不工作时由上拉原创 2021-04-13 22:18:59 · 6031 阅读 · 5 评论 -
STM32FLASH读写程序
文章目录添加文件进入工程了解flash.c和flash.h以及flash相关的固件库函数编写main.c杨桃32学习笔记,本文图片文字皆为转述添加文件进入工程在keil4工程中添加上面文件按照之前的文章方式。另外注意lib文件夹下的flash.c是否存在了解flash.c和flash.h以及flash相关的固件库函数操作一定要先擦后写。每页是1024个地址,起始地址0x08000000擦除操作以页为单位,写操作则必须以16位宽度为单位,允许跨页写入。STM32内置FLASH擦或写原创 2021-04-08 17:15:35 · 1978 阅读 · 2 评论 -
STM32按键控制led四种方法
文章目录回顾按键电路按照之前文章方法在工程文件下加入Hardware中的key.c和key.h打开固件库用户手册查询io读取相关的函数第一种方式实现按键控制第二种方式实现按键控制led第三种方式实现按键控制led(有锁存)第4种方式实现按键控制led(有锁存,在2个LED上显示二进制加法)杨桃32学习笔记,本文图片文字皆为转述回顾按键电路按键按下引脚为低。按照之前文章方法在工程文件下加入Hardware中的key.c和key.h打开固件库用户手册查询io读取相关的函数第一种方式实现原创 2021-04-08 16:10:29 · 12369 阅读 · 1 评论 -
延时函数介绍和呼吸灯的实现
文章目录延时函数介绍呼吸灯原理杨桃32学习笔记,本文图片文字皆为转述延时函数介绍分为delay_s秒,delay_ms毫秒,delay_us微秒延时,最大参数不能超过65535。呼吸灯原理当led以点亮和熄灭时间相同的时候,我们看到的led亮度为最高亮度的百分之50。如果把点亮状态延时5us,而熄灭状态延时500us时led的亮度就弱了,接下来调节亮灭占空比来实现呼吸灯。在main.c中输入一下程序并烧录验证,得到预期呼吸灯效果。#include "stm32f10x.h" //STM32头原创 2021-04-08 14:44:46 · 2935 阅读 · 2 评论 -
STM32使用另外两种方法使LED灯闪烁
文章目录GPIO_SetBits/GPIO_ResetBits函数介绍第二种led闪烁语句GPIO_Write函数介绍第三种led闪烁语句杨桃32学习笔记,本文图片文字皆为转述GPIO_SetBits/GPIO_ResetBits函数介绍第二种led闪烁语句了解了原理,然后去main.c下写出第二种led闪烁语句并烧写验证。结果led1按1秒亮灭闪烁。GPIO_Write函数介绍第三种led闪烁语句了解了原理,然后去main.c下写出第三种led闪烁语句并烧写验证。烧写后结果原创 2021-04-08 11:18:41 · 1997 阅读 · 0 评论 -
STM32使用GPIO_WriteBit()函数使LED灯闪烁
文章目录模仿四种方法点灯的示例程序,在工程模板上进行编写杨桃32学习笔记,本文图片文字皆为转述模仿四种方法点灯的示例程序,在工程模板上进行编写打开示例程序的主程序main.c复制工程模板文件夹重命名为点亮led,按照上一篇内容把Hardware文件夹下的led.c和led.h在keil4工程模板上添加进去,然后点击build。此时在main.c文件中添加相关头文件,并在main函数中添加以下语句。然后点击编译按钮,提示0错误0警告。然后打开flymcu烧录刚生成的hex。结果le原创 2021-04-08 10:00:32 · 15717 阅读 · 0 评论 -
STM32核心板电路分析
文章目录STM32核心板电路分析蜂鸣器电路分析按键电路和led电路分析继电器电路和usb转串口电路分析杨桃32学习笔记,本文图片文字皆为转述STM32核心板电路分析上图可以看到:(1)led1对应IO PB0,key1对应IO PA0。(2)背面FT232串口芯片,用来将usb转TTL电平,用户可以通过这个串口做ISP程序下载。(3)3.3v稳压的功能是将usb中的5v转为3.3v来给单片机,和周边3.3v芯片供电。(4)ASP芯片用来实现核心板的程序自动下载。蜂鸣器电路分析pb5原创 2021-04-07 21:05:51 · 1740 阅读 · 0 评论 -
STM32添加项目所需要的工程文件
文章目录解读示例工程文件模仿示例工程文件创建项目所需要的工程文件在keil4中把新建文件添加到工程中工程文件的删除下载杨桃电子提供的通用工程模板杨桃32学习笔记,本文图片文字皆为转述解读示例工程文件以按键控制LED实例教程的文件来解读Basic文件夹下存放的单片机底层基础的最小系统相关的驱动程序,不涉及更多硬件电路部分的驱动程序。Hardware文件夹包含和硬件相关的驱动程序,以后开发程序时只需要修改main.c和在Hardware文件夹下添加相关程序即可。每个子文件夹下都包含一个.c和原创 2021-04-07 20:25:17 · 2247 阅读 · 0 评论 -
STM32固件库的调用
文章目录固件库文件解读善于使用固件库用户手册杨桃32学习笔记,本文图片文字皆为转述固件库文件解读在main函数前调用#include “stm32f10x.h” //STM 头文件库文件可以直接在main函数里使用定义名来操作寄存器地址,也可以直接调用lib文件夹中的库函数。而且功能固件库之间也可以相互调用善于使用固件库用户手册与Lib文件夹下的驱动文件一一对应库文件不允许修改,只需要安心编写main.c文件来调用Lib库里的驱动程序。...原创 2021-04-05 20:29:08 · 879 阅读 · 0 评论 -
STM32固件库的安装与介绍
文章目录一、固件库介绍二、固件库安装三、keil4新建工程四、初始化配置值杨桃32学习笔记,本文图片文字皆为转述一、固件库介绍(1)功能配置寄存器:专门用来做软件和硬件之间的连接,就是多组32位的普通寄存器他们的每一位是被设定好的功能位,要理解每一位置零置一是什么意义。(2)用户程序存放在flash里在单片机运行的时候会被arm内核来调用,根据用户程序的内容arm内核会操作功能配置寄存器。根据以上原理,stm32单片机由3种编程方案,分别为寄存器操作,标准固件库,和图形化编程软件。二、固原创 2021-04-05 17:41:20 · 6818 阅读 · 3 评论 -
基于现有工程解读stm32的工程文件
文章目录解读32的工程文件常用工具栏介绍杨桃32学习笔记,本文图片文字皆为转述解读32的工程文件(1)CMSIS文件夹下包含两个c文件,对arm内核和整个单片机系统的基础文件,官方提供的不需要修改。(2)LIB文件夹下的c文件也都是stm公司提供的库文件,需要根据我们设计的程序涉及到什么功能来增添.c文件。内部功能的基本函数库。(3)Startup文件夹下,是一个由汇编语言编写的启动文件,负责单片机的启动,该文件不需要修改。单片机启动文件(4)User文件夹下为用户程序,包含了main原创 2021-04-05 16:10:31 · 335 阅读 · 0 评论 -
STM32最小系统电路
文章目录STM32最小系统电路图一,电源电路:二,复位电路:三,除了以上三大电路还要有烧录程序用的USB转TTL电路四,启动模式电路:绿色线连接的20脚和44脚杨桃32学习笔记,本文图片文字皆为转述STM32最小系统电路图三大部分:分为电源,时钟,和复位。一,电源电路:(1)电源正极3.3v(红色线)一共供给了三路的逻辑电源输入VDD1/2/3,以及一个模拟电源的输入VDDA。(2)在VBAT(备用电源接口输入)上接一个3v的纽扣电池,另一端接地(黑色线)。主要是为了内部的RTC供电。(原创 2021-04-05 14:58:05 · 3935 阅读 · 0 评论 -
杨桃32开发版最小核心板和底板接口定义以及各io口功能
文章目录一、单片机和核心板的引脚连接二、各引脚接口详讲三、单片机和核心板的引脚连接杨桃32学习笔记,本文图片文字皆为转述一、单片机和核心板的引脚连接将板子的小圆点放置左上角即可与上图引脚一一对应,按逆时针方向旋转,起始位为1到最终位48脚,改图只有引脚定义没有引脚复用功能,复用引脚请看下图。二、各引脚接口详讲boot0和boot1共同决定启动模式三、单片机和核心板的引脚连接...原创 2021-04-05 11:08:51 · 879 阅读 · 0 评论 -
CRC校验和芯片ID
文章目录一、CRC循环冗余校验计算单元二、96位芯片ID三、中断控制器和外部/事件控制器四、stm32功能全图杨桃32学习笔记,本文图片文字皆为转述一、CRC循环冗余校验计算单元CRC是用于数据正确性校验的由一个32位的数据字产生可应用在FALSH检测 例如优盘sd卡等可用于软件签名及对比CRC校验原理:连续发送10次两个设备的CRC进行对比,具体过程要发送的数据每32为一组进行算法运算得到CRC计算值与要发送的数据一同送入接收端,接收端也计算CRC得到的结果进行比对,如果不同则要求发送端原创 2021-04-05 10:32:18 · 889 阅读 · 1 评论 -
通讯接口:I2C和USART,SPI,CAN,USB2.0
文章目录一、通讯接口介绍二、I2C总线三、通用同步/异步收发器USART四、串行外设接口SPI五、控制器区域网络CAN六、串行通用总线USB杨桃32学习笔记,本文图片文字皆为转述一、通讯接口介绍IrDA接口和解调控制是红外线的解调二、I2C总线一个主设备下面挂接多个从设备使用一条通讯线通讯这种就是总线的方式。SCL时钟同步线 SDA时钟数据线 要共地接线通讯的方式是地址的方式,每个从设备都有一个地址,主设备要通讯前会发送地址号指明要与那个从设备进行通讯三、通用同步/异步收发器USA原创 2021-04-05 09:29:04 · 1105 阅读 · 2 评论 -
调试模式和定时器,看门狗和嘀嗒定时器
文章目录一、调试模块二、定时器模块杨桃32学习笔记,本文图片文字皆为转述参考博客连接一、调试模块所谓调试的过程便是,写好程序然后用Keil进行编译,编译好之后,再利用isp烧写程序,将程序下载进单片机,让程序“跑”起来看效果如何,如果有问题,我们就修改程序,再重复上述过程,这样便显示的格外麻烦 ,而且不能观看过程中每个数值以及寄存器值的变化情况。处于以上原因,单片机公司特别的推出了调试模式,只需要连接相应的调试接口,便可在相应的界面观看数值和寄存器值变化的情况,以及可以让程序的几个部分独立的运行,原创 2021-04-05 08:12:24 · 859 阅读 · 0 评论 -
DMA和IO端口
文章目录一、DMA模块二、I/O端口模块2.1 io口介绍2.2 io口工作模式2.3 io口引脚分组杨桃32学习笔记,本文图片文字皆为转述参考博客连接一、DMA模块使用DMA(直接存储器的访问)模块的目的在于提高效率,它的优点在于DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU原创 2021-04-04 10:17:16 · 1954 阅读 · 0 评论 -
低功耗和ADC
文章目录一、工作模式二、ADC模块一、工作模式正常模式:系统正常工作,功耗最高。其他模式都是以低功耗、节能为目的而设定,可以使用特定的方法来唤醒CPU工作,根据不同的需求,有以下几种工作方式。休眠模式:该模式关闭了ARM内核。唤醒方式:所有内部、外部功能的中断/事件。停机模式:该模式关闭了ARM内核、内部所有的功能、PLL分频器、HSE。唤醒方式:外部中断输入接口EXTI(16个I/O之一)、电源电压测控中断PVD、RTC闹钟、USB唤醒信号。待机模式:该模式关闭了ARM内核、内部所有的功能原创 2021-04-04 09:10:40 · 1043 阅读 · 0 评论 -
时钟,复位和电源管理
文章目录一、电源管理和复位二、时钟1.时钟的分类和特性2.时钟图一、电源管理和复位(1)8MHZ的振荡器给arm内核提供,40khz给RTC使用也就是计时用的实时时钟。(2)PLL锁相环电路可以产生分频,以达到倍频的效果,例如:4MHZ的外部晶振,分成三份,可以达到3x4=12MHZ的晶振。二、时钟1.时钟的分类和特性 内部时钟都是RC,外部时钟都是晶体,高速都是提供系统时钟。2.时钟图8MHZ的高速内部时钟的通过多路选择器和倍频器达到不同频率的时钟提供给不同的外设流程图。原创 2021-04-04 08:43:47 · 599 阅读 · 0 评论 -
内核与存储器
文章目录一、stm32介绍二、内核三、存储器[参考博文连接](https://blog.csdn.net/weixin_42954385/article/details/105541750)一、stm32介绍STM32及ARMSTM32 使用ARM内核CPUARM属于一个微控制器,STM32自带了各种常用通信接口,比如 USART、I2C、SPI 等,1、串口—USART,用于跟跟串口接口的设备通信,比如:USB转串口模块、ESP8266WIFI、GPS模块,GSM 模块,串口屏、指纹识别模原创 2021-04-03 17:50:03 · 358 阅读 · 0 评论 -
stm32使用flymcu烧写程序
文章目录一、使用flymcu烧写程序一、使用flymcu烧写程序烧写程序之前要使ASP指示灯保持强亮状态,同时要保证使flashIsp模式下也就是灯闪一下模式原创 2021-04-03 17:12:32 · 4045 阅读 · 0 评论