学习笔记

STM32初识:
1.存器存放的是指令、数据或地址。
2.GPIO端口的输出初始化顺序:在这里插入图片描述

3.推挽输出和开漏输出。
所谓的驱动能力,就是指输出电流的能力。
推挽输出的最大特点是可以真正能真正的输出高电平和低电平,在两种电平下都具有驱动能力。相比于开漏输出,输出高电平时的驱动能力强很多。
但推挽输出的一个缺点是,如果当两个推挽输出结构相连在一起,一个输出高电平,整个通路上电阻很小,会发生短路,进而可能造成端口的损害。这也是为什么推挽输出不能实现" 线与"的原因。
具体就是上面的MOS导通,下面的MOS闭合时;同时另一个输出低电平,即上面的MOS闭合,下面的MOS导通时。电流会从第一个引脚的VCC通过上端MOS再经过第二个引脚的下端MOS直接流向GND。
开漏输出最主要的特性就是高电平没有驱动能力,需要借助外部上拉电阻才能真正输出高电平。
在这里插入图片描述
寄存器的结构体封装:
在这里插入图片描述
上图为宏定义寄存器基地址。

typedef struct
{
	__IO	uint32_t MODER;    /*GPIO模式寄存器						地址偏移: 0x00      */
	__IO	uint32_t OTYPER;   /*GPIO输出类型寄存器				地址偏移: 0x04      */
	__IO	uint32_t OSPEEDR;  /*GPIO输出速度寄存器				地址偏移: 0x08      */
	__IO	uint32_t PUPDR;    /*GPIO上拉/下拉寄存器			地址偏移: 0x0C      		*/
	__IO	uint32_t IDR;      /*GPIO输入数据寄存器				地址偏移: 0x10      		*/
	__IO	uint32_t ODR;      /*GPIO输出数据寄存器				地址偏移: 0x14      		*/
	__IO	uint16_t BSRRL;    /*GPIO置位/复位寄存器 低16位部分	地址偏移: 0x18 	*/
	__IO	uint16_t BSRRH;    /*GPIO置位/复位寄存器 高16位部分	地址偏移: 0x1A  */
	__IO	uint32_t LCKR;     /*GPIO配置锁定寄存器				地址偏移: 0x1C      */
	__IO	uint32_t AFR[2];   /*GPIO复用功能配置寄存器		地址偏移: 0x20-0x24 		*/
} GPIO_TypeDef;

定义寄存器结构体

#define GPIOA               ((GPIO_TypeDef *) GPIOA_BASE)
#define GPIOB               ((GPIO_TypeDef *) GPIOB_BASE)
#define GPIOC               ((GPIO_TypeDef *) GPIOC_BASE)
#define GPIOD               ((GPIO_TypeDef *) GPIOD_BASE)
#define GPIOE               ((GPIO_TypeDef *) GPIOE_BASE)
#define GPIOF               ((GPIO_TypeDef *) GPIOF_BASE)
#define GPIOG               ((GPIO_TypeDef *) GPIOG_BASE)
#define GPIOH               ((GPIO_TypeDef *) GPIOH_BASE)
#define RCC                 ((RCC_TypeDef *) RCC_BASE)

定义结构体指针
//RCC->AHB1ENR |= (1<<7);(时钟开启)
//GPIOH->MODER &= ~( 0x03<< (210));
// GPIOH->MODER |= (1<<2
10);
// GPIOH->OTYPER &= ~(1<<110);
// GPIOH->OTYPER |= (0<<1
10);
// GPIOH->OSPEEDR &= ~(0x03<<210);
// GPIOH->OSPEEDR |= (0<<2
10);
// GPIOH->PUPDR &= ~(0x03<<210);
// GPIOH->PUPDR |= (1<<2
10);
// GPIOH->BSRRH |= (1<<10);
// GPIOH->BSRRL |= (1<<10);
结构体指针的使用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值