精华内容
下载资源
问答
  • STM32应用笔记汇总

    2019-03-05 11:05:38
    STM32应用笔记汇总--FreeRTOS 一种计算CPU使用率的方法及其实现原理
    展开全文
  • STM32-(03):STM32应用实例

    千次阅读 2019-01-19 13:47:54
    应用案例 1、电力 2、工业控制 3、娱乐 4、消费电子 5、汽车电子 6、国防军事 7。。。。。。 MEMS (Micro Electromechanical System,即微电子机械系统)是指集微型传感器、执行器以及信号处理和控制...
    上一篇:STM32-(02):结识STM32 下一篇:STM32-(04):STM32F103VCT6芯片内部资源分析

    应用案例
    1、电力
    2、工业控制
    3、娱乐
    4、消费电子
    5、汽车电子
    6、国防军事
    7。。。。。。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    MEMS 是什么?
    MEMS (Micro Electromechanical System,即微电子机械系统)是指集微型传感器、执行器以及信号处理和控制电路、接口电路、通信和电源于一体的微型机电系统。
    MEMS技术的目标是通过系统的微型化、集成化来探索具有新原理、新功能的元件和系统。MEMS技术是一种典型的多学科交叉的前沿性研宄领域,几乎涉及到自然及工程科学的所有领域,如电子技术、机械技术、物理学、化学、生物医学、材料科学、能源科学等。
    沿着系统及产品小型化、智能化、集成化的发展方向,可以预见:MEMS会给人类社会带来另一次技术革命,它将对21世纪的科学技术、生产方式和人类生产质量产生深远影响,是关系到国家科技发展、国防安全和经济繁荣的一项关键技术。
    手持式设备制造商正在逐渐意识到MEMS的价值以及这种技术所带来的好处——大批量、低成本、小尺寸,而且开始转向成功的MEMS公司,其所实现的成本削减幅度之大,将影响整个消费类电子世界,而不仅是高端装置。

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    上一篇:STM32-(02):结识STM32 下一篇:STM32-(04):STM32F103VCT6芯片内部资源分析
    展开全文
  • STM32应用之TFT1.44寸屏ST7735驱动 GitHub项目下载链接:点我下载 硬件平台:stm32f103rct和1.44寸128x128 TFT屏(st7735驱动) IDE:keil MDK 一些可能的问题: 1、首先为了驱动一款TFT屏,理所应当的应该知道屏幕...

    STM32应用之TFT1.44寸屏ST7735驱动

    GitHub项目下载链接:点我下载
    硬件平台:stm32f103rct和1.44寸128x128 TFT屏(st7735驱动)
    IDE:keil MDK

    一些可能的问题:
    1、首先为了驱动一款TFT屏,理所应当的应该知道屏幕的驱动芯片,比如我们这次使用的TFT屏就是ST7735R的驱动芯片,所以理所应当的要查找芯片手册,ST7735的芯片手册上网查也是一大堆,这个不赘述。
    当然,一款驱动芯片不止能驱动一种分辨率,我们使用的就是128x128的屏幕,但这款驱动芯片最低支持132x132的屏幕,这会导致绘图时画面偏移,从芯片手册中可以了解到 ↓↓↓↓↓↓↓

    在这里插入图片描述
    关于这个问题,我们过后解答,先卖一个关子。

    2、ST7735有非常多的命令,对于一个 初学者来说不可能全部看完,所以在初始化代码中会有非常多的命令和参数初始化,我们一般直接使用网上各路前辈的初始化代码(因为实在太多了XD)。

    引脚定义:
    在这里插入图片描述

    BLK:背光控制
    RS:就是芯片手册中的 DC(数据与命令)
    RST:复位
    CS:片选(低电平选中)
    SC:接SCLK
    DI:接MOSI
    GND:地
    VCC:最好接3.3v

    贴代码:
    tft_144.h:

    #ifndef _TFT_144_H_
    #define _TFT_144_H_
    
    #include "stm32f10x_conf.h"
    #include <stdlib.h>
    
    /* parameters */
    #define WIDTH  128
    #define LENGTH 128
    
    /* pins definitions */
    #define LA0	GPIO_Pin_6		// GPIOC
    #define LSDI GPIO_Pin_15	// GPIOB
    #define LSCL GPIO_Pin_13	// GPIOB
    #define LCS GPIO_Pin_12		// GPIOB
    
    #define LA0_SET() GPIOC->BSRR = 1<<6
    #define LA0_CLR() GPIOC->BRR = 1<<6
    
    #define LCS_SET() GPIOB->BSRR = 1<<12
    #define LCS_CLR() GPIOB->BRR = 1<<12
    
    /* functions */
    void TFT_GPIO ( void );		// TFT的GPIO初始化
    void TFT_MEM  ( void );		// 显存的分配
    void TFT_INIT ( void );		// TFT初始化
    
    #define LCMD 0		// 命令
    #define LDAT 1		// 数据
    void writeCmdData ( unsigned char Byte, unsigned char opt );
    
    #define RED		0xf800
    #define GREEN	0x07e0
    #define BLUE	0x001f
    #define YELLOW	0xffe0
    #define BLACK	0x0000
    #define WHITE	0xffff
    void setPos( int sx, int ex, int sy, int ey );	// 设置绘图区域
    void write2Byte( unsigned int twoByte );		// 写两个字节,因为color数据是16位
    void writeAnColor( unsigned int color );		// 填充全屏
    
    #endif
    
    

    tft_144.c:

    #include "tft_144.h"
    
    unsigned short int* LCD_MEM;
    
    void TFT_GPIO ( void ) {
    
    	SPI_InitTypeDef MYSPI;
    	GPIO_InitTypeDef TFTIO;
    
    	//时钟使能
    	RCC_APB1PeriphClockCmd( RCC_APB1Periph_SPI2, ENABLE );
    	RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE );
    	RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE );
    	//SPI配置
    	MYSPI.SPI_Mode = SPI_Mode_Master;
    	MYSPI.SPI_CPOL = SPI_CPOL_High;
    	MYSPI.SPI_CPHA = SPI_CPHA_2Edge;
    	MYSPI.SPI_FirstBit = SPI_FirstBit_MSB;
    	MYSPI.SPI_DataSize = SPI_DataSize_8b;
    	MYSPI.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
    	MYSPI.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
    	MYSPI.SPI_NSS = SPI_NSS_Soft;
    	SPI_Init( SPI2, &MYSPI );
    	SPI_Cmd( SPI2, ENABLE );
    	//引脚配置
    	TFTIO.GPIO_Mode = GPIO_Mode_Out_PP;
    	TFTIO.GPIO_Speed = GPIO_Speed_50MHz;
    	TFTIO.GPIO_Pin = LA0;
    	GPIO_Init( GPIOC, &TFTIO );
    	
    	TFTIO.GPIO_Mode = GPIO_Mode_AF_PP;
    	TFTIO.GPIO_Speed = GPIO_Speed_50MHz;
    	TFTIO.GPIO_Pin = LSDI|LSCL|LCS;
    	GPIO_Init( GPIOB, &TFTIO );
    
    }
    
    /* assemble the video memory */
    void TFT_MEM  ( void ) {
    	LCD_MEM = (unsigned short int*)\
    			  malloc( sizeof(unsigned short int)*( WIDTH*LENGTH ) );
    }
    
    void TFT_INIT ( void ) {
    
    	TFT_GPIO();
    	//TFT_MEM();
    	//以下的初始化代码复制粘贴即可,不用深究
    	writeCmdData(0x28, LCMD);
    	writeCmdData(0x11, LCMD);//Sleep exit 
    		
    	//ST7735R Frame Rate
    	writeCmdData(0xB1, LCMD); 
    	writeCmdData(0x01, LDAT); 
    	writeCmdData(0x2C, LDAT); 
    	writeCmdData(0x2D, LDAT); 
    
    	writeCmdData(0xB2, LCMD); 
    	writeCmdData(0x01, LDAT); 
    	writeCmdData(0x2C, LDAT); 
    	writeCmdData(0x2D, LDAT); 
    
    	writeCmdData(0xB3, LCMD); 
    	writeCmdData(0x01, LDAT); 
    	writeCmdData(0x2C, LDAT); 
    	writeCmdData(0x2D, LDAT); 
    	writeCmdData(0x01, LDAT); 
    	writeCmdData(0x2C, LDAT); 
    	writeCmdData(0x2D, LDAT); 
    	
    	writeCmdData(0xB4, LCMD); //Column inversion 
    	writeCmdData(0x07, LDAT); 
    	
    	//ST7735R Power Sequence
    	writeCmdData(0xC0, LCMD); 
    	writeCmdData(0xA2, LDAT); 
    	writeCmdData(0x02, LDAT); 
    	writeCmdData(0x84, LDAT); 
    	writeCmdData(0xC1, LCMD); 
    	writeCmdData(0xC5, LDAT); 
    
    	writeCmdData(0xC2, LCMD); 
    	writeCmdData(0x0A, LDAT); 
    	writeCmdData(0x00, LDAT); 
    
    	writeCmdData(0xC3, LCMD); 
    	writeCmdData(0x8A, LDAT); 
    	writeCmdData(0x2A, LDAT); 
    	writeCmdData(0xC4, LCMD); 
    	writeCmdData(0x8A, LDAT); 
    	writeCmdData(0xEE, LDAT); 
    	
    	writeCmdData(0xC5, LCMD); //VCOM 
    	writeCmdData(0x0E, LDAT); 
    	
    	writeCmdData(0x36, LCMD); //MX, MY, RGB mode 
    	writeCmdData(0xC8, LDAT); //竖屏C8 横屏08 A8	
    	
    	//ST7735R Gamma Sequence
    	writeCmdData(0xe0, LCMD); 
    	writeCmdData(0x0f, LDAT); 
    	writeCmdData(0x1a, LDAT); 
    	writeCmdData(0x0f, LDAT); 
    	writeCmdData(0x18, LDAT); 
    	writeCmdData(0x2f, LDAT); 
    	writeCmdData(0x28, LDAT); 
    	writeCmdData(0x20, LDAT); 
    	writeCmdData(0x22, LDAT); 
    	writeCmdData(0x1f, LDAT); 
    	writeCmdData(0x1b, LDAT); 
    	writeCmdData(0x23, LDAT); 
    	writeCmdData(0x37, LDAT); 
    	writeCmdData(0x00, LDAT); 	
    	writeCmdData(0x07, LDAT); 
    	writeCmdData(0x02, LDAT); 
    	writeCmdData(0x10, LDAT); 
    
    	writeCmdData(0xe1, LCMD); 
    	writeCmdData(0x0f, LDAT); 
    	writeCmdData(0x1b, LDAT); 
    	writeCmdData(0x0f, LDAT); 
    	writeCmdData(0x17, LDAT); 
    	writeCmdData(0x33, LDAT); 
    	writeCmdData(0x2c, LDAT); 
    	writeCmdData(0x29, LDAT); 
    	writeCmdData(0x2e, LDAT); 
    	writeCmdData(0x30, LDAT); 
    	writeCmdData(0x30, LDAT); 
    	writeCmdData(0x39, LDAT); 
    	writeCmdData(0x3f, LDAT); 
    	writeCmdData(0x00, LDAT); 
    	writeCmdData(0x07, LDAT); 
    	writeCmdData(0x03, LDAT); 
    	writeCmdData(0x10, LDAT);  
    	
    	writeCmdData(0xF0, LCMD); //Enable test command  
    	writeCmdData(0x01, LDAT); 
    	writeCmdData(0xF6, LCMD); //Disable ram power save mode 
    	writeCmdData(0x00, LDAT); 
    	
    	writeCmdData(0x3A, LCMD); //65k mode 
    	writeCmdData(0x05, LDAT); 
    	
    	writeCmdData(0x29, LCMD);//Display on
    	
    	writeAnColor( YELLOW );
    
    }
    
    void writeCmdData ( unsigned char Byte, unsigned char opt ) {
    	//根据opt设置传入的是数据还是命令
    	if ( opt == LCMD ) {
    		LA0_CLR();
    	} else if ( opt == LDAT ) {
    		LA0_SET();
    	}
    	LCS_CLR();		//低电平使能
    	SPI_I2S_SendData( SPI2, Byte );
    	while( !( (SPI2->SR)&(SPI_I2S_FLAG_TXE) ) );
    	LCS_SET();		//取消片选
    }
    
    void setPos( int sx, int ex, int sy, int ey ) {
    	// X轴
    	// 注意这里的“sx+2”,就是之前所说的偏移问题的解决方法
    	writeCmdData( 0x2a, LCMD );
    	writeCmdData( 0x00, LDAT );
    	writeCmdData( sx+2, LDAT );
    	writeCmdData( 0x00, LDAT );
    	writeCmdData( ex+2, LDAT );
    	// Y轴
    	writeCmdData( 0x2b, LCMD );
    	writeCmdData( 0x00, LDAT );
    	writeCmdData( sy+3, LDAT );
    	writeCmdData( 0x00, LDAT );
    	writeCmdData( ey+3, LDAT );
    	// 很重要!最后的写入命令
    	writeCmdData( 0x2c, LCMD );
    }
    
    void write2Byte( unsigned int twoByte ) {
     	// 根据芯片手册可知先传输高8位,后传输低8位,总共16位
    	writeCmdData( twoByte>>8, LDAT );
    	writeCmdData( twoByte, LDAT );
    }
    
    void writeAnColor( unsigned int color ) {
    	unsigned char x = 0;
    	unsigned char y = 0;
    	setPos( 0, 127, 0, 127 );
    	for ( y = 0; y < LENGTH; y++ ) {
    		for ( x = 0; x < WIDTH; x++ ) {
    			write2Byte( color );
    		}
    	}
    }
    
    

    main.c

    #include <stdio.h>
    #include "stm32f10x_conf.h"
    /* User's inc */
    #include "tft_144.h"
    
    int main () {
    
    	TFT_INIT();
    	
    	while ( 1 );
    	
    }
    
    
    展开全文
  • stm32应用笔记和数据手册

    千次阅读 2017-07-27 11:58:43
    2.在STM32F10xxx上通过USART实现在应用中编程(IAP) (第4版) 例程: 3.ST MCU的振荡器设计指南 (第1版) 4.STM32F10xxx硬件开发入门 (第2版) 5.在STM32F101xx和STM32F103xx中使用智能卡接口 (第2版) 例程:
    1.应用笔记

    1.使用大容量STM32F10xxx的FSMC模块驱动外部存储器
    an2824.zip (第2版) 
    2.在STM32F10xxx上通过USART实现在应用中编程(IAP) an2824.zip (第4版)  例程:an2557.zip
    3.ST MCU的振荡器设计指南an2557.zip (第1版)
    4.STM32F10xxx硬件开发入门 an3116.zip (第2版)
    5.在STM32F101xx和STM32F103xx中使用智能卡接口 an2594.zip (第2版)  例程:an2598.zip
    6.使用STM32F101xx和STM32F103xx的DMA控制器 an2598.zip (第2版)  例程:an2548.zip
    7.如何用STM32F10xxx标准外设库V3.0.0替换STM32F10xxx固件库V2.0.3 an2931.zip (第1版) 例程:an2953.zip
    8.在STM32F10xxx中如何得到最佳的ADC精度an2868.zip (第1版)

    2.数据手册

    1.  STM32F101xx、STM32F102xx、STM32F103xx、STM32F105xx和STM32F107xx――先进的基于ARM核心的32位微控制器
     stm32f10xfwlib_v2.0.3_patch1.zip (第10版)
    2.  中容量增强型产品:基于ARM核心的32位微控制器,具有64K或128K字节闪存、USB模块、CAN模块、7个定时器、2个ADC模块和9个通信接口 an2592.zip (第10版)
    3.  小容量基本型产品:基于ARM核心的32位微控制器,具有16K或32K字节闪存、5个定时器、1个ADC模块和4个通信接口 an2592.zip (第2版)
    4.  中容量基本型产品:基于ARM核心的32位微控制器,具有64K或128K字节闪存、6个定时器、1个ADC模块和7个通信接口 an2592.zip (第11版)
    5.  小容量增强型产品:基于ARM核心的32位微控制器,具有16K或32K字节闪存、USB接口、CAN接口、6个定时器、2个ADC模块和6个通信接口 an2592.zip (第2版)
    6.  小容量USB基本型产品:基于ARM核心的32位微控制器,具有16K或32K字节闪存、USB全速接口、5个定时器、1个ADC模块和5个通信接口 an2592.zip (第2版)
    7.  大容量增强型产品:基于ARM核心的32位微控制器,具有512K字节闪存、USB接口、CAN接口、11个定时器、3个ADC模块和13个通信接口 an2592.zip (第5版 2009年3月)
    8.   大容量基本型产品:基于ARM核心的32位微控制器,具有512K字节闪存、9个定时器、1个ADC模块和10个通信接口 an2592.zip (第5版)
    9.  中容量USB基本型产品:基于ARM核心的32位微控制器,具有64K或128K字节闪存、USB全速接口、6个定时器、1个ADC模块和8个通信接口 an2592.zip (第2版)

    3.编程手册

    1.STM32F10xxx闪存编程手册 stm32f10xfwlib_v2.0.3_patch1.zip (第6版)

    4.勘误手册

    1.STM32F105xx和STM32F107xx版本'Z'互联型产品局限an2592.zip (第1版)
    2.STM32F101x4/6、STM32F102x4/6和STM32F103x4/6小容量产品局限an2592.zip (第2版)
    3.STM32F101x8/B、STM32F102x8/B和STM32F103x8/B中容量产品局限 an2592.zip (第6版)
    4.STM32F101xC/D/E和STM32F103xC/D/E版本Z大容量产品局限 an2592.zip (第5版)
    展开全文
  • STM32应用笔记转载

    2015-10-09 15:17:00
    stm32 外部中断嵌套[操作寄存器+库函数]   stm32 NVIC中断管理实现[直接操作寄存器]   stm32 SPI通信[操作寄存器+库函数]   stm32 i2c通信 [操作寄存器+库函数]   stm32 can总线通信[库函数]   stm32...
  • 这里我用通用定时器3的通道1来测量转速霍尔转速传感器基本介绍霍尔传感器分类和原理关于为什么选用开关型常开PNP型霍尔传感器STM32程序实现程序介绍程序源码TIM3_CAP.HTIM3_CAP.CMAIN.C 霍尔转速传感器基本介绍 霍尔...
  • STM32 应用程序加密的一种设计方案

    千次阅读 2019-09-19 10:33:50
    STM32编译后的代码存在FLASH中,通过外部工具可以读出来全部数据,一旦硬件抄板一样,再将FLASH数据全部拷贝至抄板单片机中,既可以完全实现硬件和软件功能抄袭。因此,需要对自己的应用程序加密,即使被抄板和读取...
  • STM32应用之485通信

    千次阅读 2019-09-05 13:10:52
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
  • 碧海蓝天在刚刚接触stm32芯片时写的第一个简单程序就是串口通信,现在把程序代码甩出来与大家分享。完整的程序哦~一般人我不告诉他  库版本 :ST3.0.0 文件:mian.c //功能:串口初始化、打开定时器中断...
  • 关于STM32应用触摸屏校准原理的总结

    千次阅读 2016-08-20 17:16:48
    应用场景发现以前写的有点模糊不清,先来普及一下应用场景吧,这篇博文是针对电阻屏的第一次校准而写的,应用场景图示: 第一步,得到屏幕上 4 个点位置如下图首先读取这四个点的AD转换值,然后由两点间的距离公式...
  • STM32应用-5-LORA模块测试

    万次阅读 2018-11-14 13:56:05
    在一个物品定位项目中,需要用Lora实现物品定位功能。此项目没有选择NBIOT因为客户对于NB需要SIM卡,以及NB的成本并不满意,因此选择更低成本,且无需SIM卡的LORA方式。 硬件连接 其中,Lora模块的管脚连接方式...
  • 我们在从事STM32单片机的应用开发及调试过程中,往往会碰到各类异常。其中有不少比例的问题跟电源有关。对于一个电子产品而言,电源部分很关键、很重要,但在实际开发调试中,我们偶尔会有意无意的忽视它。这里分享...
  • STM32应用简章之GPIO初始化(输入引脚)

    千次阅读 2018-09-15 09:35:21
    l//初始化IO模式:上拉/下拉输入。调用函数:  void KEY_Init(void) //IO初始化 {   GPIO_InitTypeDef GPIO_InitStructure;    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOE,ENABLE);...
  • 学习lwip在stm32应用上的一些总结

    千次阅读 2015-10-08 11:54:53
    这个是PHY芯片的驱动,ethnetif.c 这个主要是lwip和硬件驱动的接口,还有一个是stm32f2x7_eth.c 这个主要是stm32芯片里面的MAC控制器部分的驱动了。一般的tcpip协议栈里面的进程模型有三种:模型1 TCPIP的每种协议...
  • STM32应用-第2节-MOS管使用方法

    千次阅读 2018-11-10 07:45:35
    创业项目中的振动记录仪作为...为此,再复习一下MOS管的应用。 NMOS和PMOS 顾名思义,NMOS为阴性,因此箭头向内,PMOS为阳性,箭头向外。 NMOS特性:G&gt;S时导通,也就是阴性的G级电压为正时,MOS导通,电...
  • 一直不太明白stm32IAP启动后跳到应用部分运行后,应用部分发生中断后PC指针要跳转到IAP部分的中断向量表处(地址0x80000000由硬件决定),但是如何跳到应用部分的执行函数处的呢?要理解此处最关键的地方为函数"NVIC...
  • STM32】HAL库 STM32CubeMX系列学习教程

    万次阅读 多人点赞 2020-02-07 09:15:30
    STM32CubeMX 简介 1、STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高...
  • STM32(一)STM32简介

    万次阅读 多人点赞 2018-02-03 14:44:00
    大家好,今天我跟大家分享一下学习STM32的一些收获,希望对初学STM32的同学有所启示。当然,本人也是一名初学者,如果有谈论不妥之处,还望您能够批评指正,不吝赐教,本人将非常感激。如果有什么问题,欢迎您到...
  • STM32 SPI详解

    万次阅读 多人点赞 2016-07-17 22:28:23
    本文的程序是主控室STM32F107各种宏定义和文件会在末尾说明 1、 SPI简介 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口...
  • 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1、芯片: STM32F407ZET6/ STM32F103ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/...
  • STM32F4与STM32F1的区别

    万次阅读 多人点赞 2017-01-09 13:17:41
    作为Cortex M3市场的最大占有者,ST公司在2011年又推出基于Cortex M4...达到168Mhz(可获得210DMIPS的处理能力),这使得STM32F4尤其适用于需要浮点运算或DSP处理的应用,也被称之为:DSC,具有非常广泛的应用前景。
  • STM32 复位及时钟 应用总结(1)

    千次阅读 2017-07-09 18:32:03
    3.《STM32 应用手册》 4.《STM32 函数库手册》一、复位 STM32F10xxx 支持三种复位形式,分别为 系统复位、上电复位、备份复位。 1. 系统复位 除了时钟控制器的RCC_CSR 寄存器中的复位标志位和备份区域中的...
  • STM32移植LWIP

    万次阅读 2018-04-06 11:56:50
    本文使用的是STM32F207VCT6平台,MII接口的RTL8201EL网络芯片,LWIP版本是1.4.1基础工程是:已经实现了10ms定时,led灯1s闪烁,还有串口打印欢迎查看本文所在的系列,STM32的LWIP应用,点击跳转本文使用的IDE是IAR7.2...
  • STM32中断应用总结

    千次阅读 2019-07-26 14:10:37
    STM32中断应用总结 STM32中断很强大,STM32中断可以嵌套,任何外设都可以产生中断,其中中断和异常是等价的. 中断执行流程: 主程序执行过程可以产生中断去执行中断的内容(保护现场),然后在返回继续执行中断. 中断...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,834
精华内容 17,533
关键字:

stm32应用