- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32F1031、IO口处理IO口包含7个寄存器配置寄存器两个:CRL(32),CRH(32)数据寄存器两个:IDR(32),ODR(32),但是他们只用了16位置位复位寄存器:BSRR(32)复位寄存器:BRR(16)锁存寄存器:LCKR(32)常用的有前面四个:其中前面两个是用来设置的,后面两个是用来操作的。每个IO口占用四位进行设置(低两位是MODE,高两位是CNF),每组16个,总共需要64个位设置,分别从CRL低位开始,到CRH的高位结束。每个IO口四位二进制的常用配置:模拟输入模式(ADC):0x0;推挽输出模式(输出口50MHz):0x3;上/下拉输入模式(输入口用): 0x8;复用输出(第二供能):0xB;STM32F407学习笔记系统时钟的设置:Stm32_Clock_Init(168,4,2,7);参数分别是:PLLN,PLLM,PLLP,PLLQHSE分频PLLM之后为VCO的输入,一般VCO的输入要求为1~2MHz,一般建议取为2MHz,防止PLL抖动。VCO输出是输入的PLLN倍频,SYSCLK在去PLL输出时,SYSCLK = PLL=HSE/PLLM*PLLN/PLLP而PLLQ是为48MHz时钟配置用的,CLK48=HSE/PLLM*PLLN/PLLQ所以要设置系统时钟为168MHz时候推荐的参数取值为SYSCLK = PLL=HSE/PLLM*PLLN/PLLP =8/4*168/2=168MHzCLK48=HSE/PLLM*PLLN/PLLQ=8/4*168/7=48MHz延时函数设置:delay_init(168);延时函数参数为系统时钟SYSCLK初始化后就可以调用延时函数:delay_ms(ms);参数不能大于65536,因为参数是16位数delay_us(us);参数不能大于798915普通IO的使用a.首先是使能时钟RCC-AHB1ENR|=15;在该寄存器相应的位置1即可b.IO口模式设置:GPIO_Set(GPIOF,PIN9|PIN10,GPIO_MODE_OUT,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); 参数分别是:GPIOx,PIN9|PIN10(具体对应的口,可以使用与的关系)因为每种占一位#define PIN010#define PIN111#define PIN212#define PIN313#define PIN414#define PIN515#define PIN616#define PIN717#define PIN818#define PIN919#define PIN10110#define PIN11111#define PIN12112#define PIN13113#define PIN14114#define PIN15115Mode:四种,各个模式只能设置一种#define GPIO_MODE_IN 0//普通输入模式#define GPIO_MODE_OUT1//普通输出模式#define GPIO_MODE_AF2//AF功能模式#define GPIO_MODE_AIN3//模拟输入模式输出推挽或者开漏选择:#define GPIO_OTYPE_PP0//推挽输出#define GPIO_OTYPE_OD1//开漏输出推挽输出可输出强的高、低电平,用于连接数字器件开漏输出相当于三极管的集电极,电流型驱动,只可以输出强的低电平,高电平需外拉。(电路中只有一个MOS管)GPIO的速度#define GPIO_SPEED_2M0#define GPIO_SPEED_25M1#define GPIO_SPEED_50M2#define GPIO_SPEED_100M3#define GPIO_PUPD_NONE0//不带上拉不带下拉#define GPIO_PUPD_PU1//上拉#define GPIO_PUPD_PD2//下拉#define GPIO_PUPD_RES3//保留注意:IO口推挽输出时候是否上拉不重要,但是尽量设置成为上拉或者是下课,如果外设是高低平驱动则设置成下拉,低电平驱动设置成为上拉,防止误动作。按键扫描笔记:按键扫描函数同以前的一样不必多讲主要是讲解IO口作为输入口的设置:GPIO通用设置GPIO_Set函数的前两个参数是用于来定位具体的哪一个IO口的,第三个参数是设置输入输出模式的按键是普通输入模式,第四第五参数是与输出有关的,写为0即可,最后一个参数设置需要看按键按下是高电平则设置为下拉,按键按下是低电平则设置为上拉。串口实验:串口初始化函数参数:第一个是APB2的时钟PCLK2。第二个是波特率,不用多说uart_init(84,115200);时钟设置:
文档评论(0)