首页 > 代码库 > HttpClient之一:基础知识
HttpClient之一:基础知识
这里要记录的有点太多了,有点头昏脑胀....先来看看吧
所有的GPIO口都有外部中断的能力,为了使用外部中断线,端口必须设置成输入模式.
输入模式有三种:上拉、下拉、浮空
请看图:
上拉输入模式:区别在于没有输入信号的时候默认输入高电平
下拉输入模式:区别在于没有输入信号的时候默认输入低电平
对于浮空输入模式顾名思义也就是输入什么信号才是什么信号,对于浮空输入要保证有明确的输入信号
例子:
(板子:奋斗V5)
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; //上拉 GPIO_Init(GPIOC, &GPIO_InitStructure);那它连接的是根外部中断/事件线呢?看看..
很明显,PAx~PGx是连接在EXTIx上的, 所以上面的例子中PC2口连接的是EXTI2线上.有了接受者,就要有中断源头啦
既然我们上面的例子选择了PC2,在奋斗V5板上PC2连接的是KEY2. 所以KEY2就是中断源的触发器了.
当然,我们需要配置寄存器了
因为截图的问题,我这里选择了这个比较好截的.看看STM32F10X参考手册就知道了,主要是配置AFIO_EXTICRx寄存器来选择中断源
配置方法:GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource2);就可以将PC2作为外部输入源了,也就是当KEY1按下去的
时候产生一个跳变时,EXIT2就会检测到这一跳变并产生中断.那它又是怎么检测到兵产生中断的呢? 下面
这里又涉及到了一个概念:中断和事件. 上面说EXIT线, 也就是中断/事件线. 那现在我们从概念上理解下中断和事件
事件:是表示检测到某一动作(电平边沿)触发事件发生了
中断:有某个事件发生并产生中断,并跳转到对应的中断处理程序中
事件可以触发中断,也可以不触发, 中断有可能被更优先的中断屏蔽,事件不会
事件本质上就是一个触发信号,是用来触发特定的外设模块或核心本身(唤醒).
事件只是一个触发信号(脉冲),而中断则是一个固定的电平信号
(多谢http://www.openedv.com/posts/list/2543.htm楼主的解释)
关于这附图的解释可以参考下这篇文章,讲得十分细致易懂:http://blog.csdn.net/flydream0/article/details/8208463
这里作为学习的笔记,我自己就简单的记录下吧,万一那篇文章有天不见了怎么办 T T..
先看看蓝色的中断线的路程:
1:信号进入芯片; 2:检测电路,由上面两个寄存器来指定,如果指定是上升沿的话,那输入信号要是高电平才能通过,下降沿同理;
3:这里是个与门,也就是说软件中断/时间寄存器可以优先于外部触发信号请求一个中断/事件请求. 只要在它的响应位置设‘1‘ 它就会不鸟是否外部信号
与门也会输出个有效信号.
4:一个中断或事件请求信号经过编号3的或门后,进入挂起请求寄存器,到此之前,中断和事件的信号传输通路都是一致的,也就是说,挂起请求寄存器中记录了外部信号的电平变化.
外部请求信号最后经过编号4的与门,向NVIC中断控制器发出一个中断请求,如果中断屏蔽寄存器的对应位为"0",则该请求信号不能传输到与门的另一端,实现了中断的屏蔽
如果为‘1‘,那就进入NVIC 进行优先级选择啦
同理可以理解事件了.这就不说了,晚了睡觉去.下篇继续..