STM32的每个GPIO端口都有两个特别的寄存器,GPIOx_BSRR和GPIOx_BRR寄存器,通过这两个寄存器可以直接对对应的GPIOx端口置'1'或置'0'. GPIOx_BSRR的高16位中每一位对应端口x的每个位,对高16位中的某位置'1'则端口x的对应位被清'0':寄存器中的位置'0',则对它对应的位不起作用. GPIOx_BSRR的低16位中每一位也对应端口x的每个位,对低16位中的某位置'1'则它对应的端口位被置'1':寄存器中的位置'0',则对它对应的端口不起作用. 简单地说G…
源:像51一样操作STM32的IO //----------------------------------------------------------------------------------------------------- //别名区 ADDRESS=0x4200 0000 + (0x0001 100C*0x20) + (bitx*4) ;bitx:第x位 // 把“位段地址+位序号”转换别名地址宏 #define BITBAND(addr, bitnum) ((addr &…
SPI写寄存器操作: staticvoid mcp251x_write_reg(struct spi_device *spi, uint8_t reg, uint8_t val)   {   struct mcp251x *chip = dev_get_drvdata(&spi->dev);   int ret; down(&chip->lock); chip->spi_transfer_buf[0] = INSTRUCTION_WRITE;       chip->…
X86-64寄存器和栈帧 概要 说到x86-64,总不免要说说AMD的牛逼,x86-64是x86系列中集大成者,继承了向后兼容的优良传统,最早由AMD公司提出,代号AMD64:正是由于能向后兼容,AMD公司打了一场漂亮翻身战.导致Intel不得不转而生产兼容AMD64的CPU.这是IT行业以弱胜强的经典战役.不过,大家为了名称延续性,更习惯称这种系统结构为x86-64. X86-64在向后兼容的同时,更主要的是注入了全新的特性,特别的:x86-64有两种工作模式,32位OS既可以跑在传统模式中,…
static XX 有记忆的定义 typedef XX 可以多次定义一个 #ifedf XXX XXX(程序段1) #else XXX(程序段2)…
Stm32基础 目录 常用功能函数 跑马灯实验 蜂鸣器实验 按键实验 端口复用与重映射 常用功能函数 初始化gpio函数 作用:初始化一个或者多个io口(同一组)的工作方式和速度该函数主要是操作GPIO CRL(CRH)寄存器,在上拉或者下拉的时候有设置BSRR或者BRR寄存器 void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); 注意:外设(包括GPIO)在使用之前,几乎都要先使能对应的时钟 参数 第一个…
STM32F103ZET6 一共有7组IO口(有FT的标识是可以识别5v的) 每组IO口有16个IO 一共16*7=112个IO 4种输入模式: (1) GPIO_Mode_AIN 模拟输入 (2) GPIO_Mode_IN_FLOATING 浮空输入 (3) GPIO_Mode_IPD 下拉输入 (4) GPIO_Mode_IPU 上拉输入 4种输出模式: (5) GPIO_Mode_Out_OD 开漏输出 (6) GPIO_Mode_Out_PP 推挽输出 (7) GPIO_Mode_AF_…
IDR是查看引脚电平状态用的寄存器,ODR是引脚电平输出的寄存器 下面内容的原文:http://m646208823.blog.163.com/blog/static/166902953201293132522237/ 使用BRR和BSRR寄存器可以方便地快速地实现对端口某些特定位的操作,而不影响其它位的状态. 比如希望快速地对GPIOE的位7进行翻转,则可以: GPIOE->BSRR = 0x80; // 置'1'GPIOE->BRR = 0x80; // 置'0' 如果使用常规'读-改-写…
STM32 GPIO 配置之ODR, BSRR, BRR 详解 用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态. ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平. 管脚对于位写1 gpio 管脚为高电平,写 0 为低电平 BSRR 只写寄存器:[color=Red]既能控制管脚为高电平,也能控制管脚为低电平.对寄存器高 16bit 写1 对应管脚为低电平,对寄存器低16bit写1对应管脚为高电平.写 0 ,无动作 BR…
端口位设置/复位寄存器BSRR: 注:如果同时设置了BSy和BRy的对应位,BSy位起作用. 位31:16  BRy: 清除端口x的位y (y = 0…15)      这些位只能写入并只能以字(16位)的形式操作.      0:对对应的ODRy位不产生影响      1:清除对应的ODRy位为0 位15:0 BSy: 设置端口x的位y (y = 0…15)      这些位只能写入并只能以字(16位)的形式操作.     0:对对应的ODRy位不产生影响     1:设置对应的ODRy位为1…