例子为单片机的"Hello World"级的流水灯实验--虽然只有一个,其中并不是将完整的代码给出,只是给出关键部分来说明"如何调用ST公司的的库来完成对硬件的控制,以及对库文件代码进行跟踪和分析至)    {        GPIO_SetBits(GPIOB,GPIO_Pin_5);     );              );              ,    GPIO_Speed_2MHz,    GPIO_Speed_50MHz} GPIOSpeed_TypeDe…
STM32 GPIO 配置之ODR, BSRR, BRR 详解 用stm32 的配置GPIO 来控制LED 显示状态,可用ODR,BSRR,BRR 直接来控制引脚输出状态. ODR寄存器可读可写:既能控制管脚为高电平,也能控制管脚为低电平. 管脚对于位写1 gpio 管脚为高电平,写 0 为低电平 BSRR 只写寄存器:[color=Red]既能控制管脚为高电平,也能控制管脚为低电平.对寄存器高 16bit 写1 对应管脚为低电平,对寄存器低16bit写1对应管脚为高电平.写 0 ,无动作 BR…
以 led闪烁中的flashLed函数例子: 库函数操作简单,但是效率不如寄存器操作的高: 寄存器操作很复杂,因为要熟悉上百个寄存器,但是程序效率很高 /**下面是通过直接操作库函数的方式实现IO控制**/ while(1) { GPIO_ResetBits(GPIOB,GPIO_Pin_9); //LED0对应引脚GPIOF.9拉低,亮 等同LED0=0; GPIO_SetBits(GPIOB,GPIO_Pin_10); //LED1对应引脚GPIOF.10拉高,灭 等同LED1=1; del…
IDR是查看引脚电平状态用的寄存器,ODR是引脚电平输出的寄存器 下面内容的原文:http://m646208823.blog.163.com/blog/static/166902953201293132522237/ 使用BRR和BSRR寄存器可以方便地快速地实现对端口某些特定位的操作,而不影响其它位的状态. 比如希望快速地对GPIOE的位7进行翻转,则可以: GPIOE->BSRR = 0x80; // 置'1'GPIOE->BRR = 0x80; // 置'0' 如果使用常规'读-改-写…
感谢原文作者:鱼竿的传说,这篇文章写得不错,转载自 http://www.cnblogs.com/chineseboy/archive/2013/03/14/2956782.html 前题: 闭门造车,两周了,经过各种的思考和求问,反复阅读了<<M3权威指南>>和<<stm32不完全手册>>的相关章节,以及开发板厂商的实验例程,对stm32这块中断终有所悟,是以记之. 至于中断的什么优先级,什么优先级分组,使能之类的原理,就不再赘述.这里主要是记载以下如何使…
要点亮LED,需要完成LED的驱动, 在工程模板上新建一个led.c和led.h文件,将其存放在led文件夹内.这两个文件需要我们自己编写. 通常xxx.c文件用于存放编写的驱动程序,xxx.h文件用于存放xxx.c内的stm32头文件.管脚定义.全局变量声明.函数声明等内容. 因此在led.c文件内编写如下代码: #include "led.h" /********************************************************************…
1.GPIO硬件结构图: 2.GPIO程序结构: 3.框架介绍: 这里的ASM是固定启动文件夹,startup_stm32f10x_hd.s表示当前stm32类型为高容量设备,当然还有md.s等. CMSYS文件夹下的两个文件是固定的,不用管. FWlib是工程中要用到的设备的文件,因为这里要用到GPIO和时钟使能所以用到了stm32f10x_gpio.c和stm32f10x_rcc.c文件,如果是其他工程要相应加入所需文件. USR中的main.c就是主程序文件,我们要在里面写相应功能,其他文…
stm32的GPIO的配置模式有好几种,包括: 1. 模拟输入: 2. 浮空输入: 3. 上拉输入: 4. 下拉输入: 5. 开漏输出: 6. 推挽输出: 7. 复用开漏输出: 8. 复用推挽输出 如图是GPIO的结构原理图: 1.模拟输入 就是1,而模拟输入信号不符合这一要求,所以自然不能放进输入数据寄存器.该输入模式,使我们可以获得外部的模拟信号. 2.浮空输入 该输入状态,我的理解是,它的输入完全由外部决定,我觉得在数据通信中应该可以使用该模式.应为在数据通信中,我们直观的理解就是线路两端…
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_…
电路图分析 首先找来单片机的原理图,根据原理图进行相关的设计工作. 例如在上图中相同网络标号表示它们是连接在一起的,因此D1发光二极管阴极是连接在STM32的PC0管脚上,D2指示灯阴极连接在PC1管脚上,其他LED管脚以此类推.如果要使D1指示灯亮,只需要控制PC0管脚输出低电平, 如果要使D1指示灯灭,只需控制PC0输出高电平.如果你们使用的是其他板子,连接LED的管脚和极性不一样,那么只需要在程序中修改对应的GPIO管脚和输出电平状态即可,原理是一样的. 要点亮D1发光二极管,也就是让ST…