Cortex M3内核支持256个中断,其中包含:16个内核中断 240个外部中断并且具有256级可编程中断设置STM32F1并没有使用Cortex M3的全部STM32有84个中断,其中包括:16个内核中断 68个外部中断(可屏蔽中断)STM32F103系列只有60个可屏蔽中断中断优先级分组首先,对STM32中断进行分组(在系统初始化时就分好组),组0~4.同时,对每个中断设置一个抢占优先级和一个响应优先级值分组配置是在寄存器SCB->AIRCR中进行配置组
目录基础概念有源晶振和无源晶振的区别内部时钟与外部时钟外部时钟内部时钟石英晶体振荡无源晶体的等效电路实际电路中检测晶振的好坏STM32F10x系列Datasheet中关于振荡电路的描述基础概念晶体本身不能产生振荡信号,必须借助于外部的振荡器电路(两端施加电压),即:振荡信号的产生 = 振荡器件 + 振荡器电路其中,振荡器件除了晶振外,还可以是RC振荡电路,LC振荡电路等有源晶振和无源晶振的区别无源晶振严格意义上来说应该叫做晶体(元件名称为Cysta
STM32中的时钟系统概述5个蓝色背景的是时钟源SYSCLK是系统时钟,最重要的时钟,可以看到其他的外设的时钟都来源于系统时钟HSI RC高速内部约为8MHz,但不太稳定,可以作为系统时钟,灰色背景的梯形表示选择器HSE Os高速外部接晶振,例如8MHz,其可以直接作为选择器的输入,也可以分频后作为选择器输入,PLL表示锁相环,用于倍频,可以选择2-16,通过锁相环寄存器配置,产生的时钟为PLL_CLKCSS时钟监控系统一旦HSE失效,则自动切换到SYSCLK=HSI
也可以直接从源代码看,例如,我要看APB2桥出来了哪些外设也就是上图这些
如下图操作即可
如下图所示操作即可
电容例如101,表示10后面带1个0,即10 0,单位是pF,即100 pF104,表示10 000 0,单位是pF,即100 nF或0.1 uF105,表示10 000 00,单位是pF,即1 uF106,表示10 000 000,单位是pF,即10 uF473,表示47 000,单位是pF,则47nF200,则20 pF电阻电阻也是类似的,单位为欧姆例如153,表示15 000,即15K6R8,表示6.8,R表示小数点102表示1K103表示10K10
电容的结构电容就是两块导体之间夹着一块绝缘体,就像三明治一样,导体为阴极和阳极,绝缘体为介质。电容的作用隔直电容:
目录算数运算符关系运算符逻辑运算符位运算符算数运算符+-*/% 注意只有整数才能取余+=-=/=%=注意:printf如果要输出%,则需要使用%%关系运算符><==>=<=!=关系运算符的最终结果,只能是1或者0,分别表示真或者假逻辑运算符&& 逻辑与,两边都为真才真|| 逻辑或,两边只有有一个为真就为真!逻辑非要表示a
构造类型概念:由若干个相同或不同数据类型构成的集合,该数据类型称为构造类型包括:数组,结构体,共用体,枚举即:基本类型只能定义1个变量保存1个数,构造类型可以1个变量保存多个数ASCII码表计算机只能识别二进制数,那么对于非数值型数据是如何表示的呢?将非数值型数据用数值型数据进行标识,即ASCII码表从0到127,这128个数值型数据可以表示字符注意:字符0-9和数值0-9之间的区别如果将数字
#include <stdio.h>int main(int argc, char *argv[]){ char a = 'w'; printf("a = %c\n", a); short b = 100; printf("b = %d\n", b); int c = 9999; printf("c = %d\n", c); long
目录数据类型字符型整型浮点型其他符号空存储相关类型其他关键字数据类型字符型char 字符型,1字节(8位),单引号,例如 char ch1 = '1';整型short 短整型,2字节(16位),范围从-2的16次方到2的16次方-1int 整型,4字节,范围从-2的32次方到2的32次方-1long 长整型,对于32位系统
目录几种函数的类型函数的声明概念为什么要声明声明的方法什么时候需要声明如何声明什么时候需要声明如何声明几种函数的类型有参函数int fun(int a, float b){}无参函数int fun(void){}int fun(){}带返回值的函数在定义函数时,必须带有返回值类型,在函数体内,必须有return
goto语句用于在一个函数里面实现代码的跳转#include <stdio.h>int main (int argc, char *argv[]){ printf ("1\n"); goto NEXT; printf ("2\n"); printf ("3\n");NEXT: printf ("4\n"); return 0;}使用goto实现循环i
数组的概念数组是若干个相同类型的变量在内存中有序存储的集合如果是不同类型,则无法通过数组进行存储数组在内存中会开辟一块连续的空间,因此数组元素个数不能无限大,否则会造成内存溢出例如:int a[10]; // 定义了一个整形的数组a,a是数组的名字,数组中有10个元素,每个元素的类型都是int类型,而且在内存中连续存储这十个元素分别是a[0],a[1],... ,a[9]a[0] 至 a[9] 在
定义定义方式1一个字符一个字符地定义char c1 = {'c','k',' ','l'}定义方式2字符串赋值注意:使用字符串赋值方式要比一个一个字符逐一赋值多1个字节,用于存放字符串结束标志'\0'char c2[] = "ck l";我们在定义和初始化字符串数组时经常会这样写:char ch[32] = "";这是一种局部初始化,因为字符串默认有一个'\0',所以第一个字符就是'\0',没有初
栈区用于存放局部变量也就是说,任何函数里面,我们定义的变量,不加任何修饰,那么这些变量都是保持在栈区里的静态全局区未初始化的静态全局区静态变量(static修饰的变量)或全局变量(在主函数外,不属于任何函数的变量),未经过初始化,则存在此区初始化的静态全局区全局变量,静态变量,赋过初值的,存放在此区代码区存放代码文字常量区存放常量普通的全局变量在函数外部定义的变量,只要是在main函数外,包括其
switch语句语法如下:switch (表达式) { case 常量表达式1: 语句1;  
for循环for (表达式1;表达式2;表达式3){ 循环体;}执行顺序:执行表达式1执行表达式2如果表达式2成立,则执行循环体,执行完毕后,再执行表达式3,再执行表达式2...直到表达式2不成立为止,循环结束while循环while(条件表达式){ &nbs
对于微处理器,一切的底层配置,最终都是配置寄存器库函数的本质就是对寄存器的封装映射文件:stm32f10x.h根据Datasheet,STM32F1系列的GPIO共有7个寄存器,对应的结构体定义如下:/** * @brief General Purpose I/O */typedef struct{ __IO uint32_t CRL; __IO uint32_t CRH; _
目录位操作define宏定义关键词ifdef条件编译extern变量声明typedef类型结构体结构体的优势:static关键字位操作6种位操作运算符位操作数值操作位操作即按位进行运算操作GPIO->CRL &= 0xFFFFFF0F上面这句代码的意思是将GPIO的CRL寄存器的对应位清0看到&=操作,就要马
Altium designer 复杂多边形的敷铜方法,可以在上方tools菜单中选择使用polygon managerhttp://bbs.eeworld.com.cn/thread-480102-1-1.html
报错信息错误信息如图所示解决方法
电荷泵,又称为电容式的开关稳压器,或开关电容DC-DC变换器,无感式DC-DC变换器电荷泵采用电容作为开关和储能的元件如图所示,S1与S3闭合,S2与S4断开,则Vin给电容充电,而后S1与S3断开,S2与S4闭合,则电容放电,此时Vout=Vin,此时C成为飞跨电容如图所示,S1与S3闭合,S2与S4断开
运放,是运算放大器的简称运算放大器是用模拟电子器件(如晶体管,场效应管,二极管等)构成的模拟集成电路,其特点是有很高的放大倍数和抗干扰能
选中元器件后点击Find similar若是针对相同的某一性质,则在那里将Any改为Same打开Open Properties此外还可以选择只针对当前文件或针对整个工程点击
1、什么是推挽结构和推挽电路?推挽结构一般是指两个参数相同的三极管或MOS管分别受两互补信号的控制,总是在一个三极管或MOS管导通的时候另一个
HC05和HC06的AT指令是不一样的详细的可以看这个链接
近期要给非科班的师弟们讲解嵌入式基础,这里做一个汇总一、概述GPIO是通用输入/输出端口的简称,是STM32可控制的引脚。GPIO的引脚与外部硬件设备
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号