STM32学习笔记一一GPIO

1. GPIO工作方式STM32 每个 IO 口可以自由编程,但 IO 口寄存器必须要按 32 位字被访问。 本文主要是库函数实现的笔记。相关图片来自正点原子教程。1.1 4种输入模式输入浮空 输入上拉 输入下拉 模拟输入a.输入浮空CPU可以通过输入数据寄存器读出I/O口的高低电平,工作电路如图。b.上拉下拉输入:添加了上拉、下拉电阻后,CPU再读电平c.模拟输入输入量为模拟量,不再是电平,输入的电压范围:0—3.3V1.2 4种输出模式开漏输出 开漏复用功能 推挽式输出 推挽式复用功能a. 开漏输出开漏输出:输出端相当于三极管的集电极. 要得到高电平状态需要上拉电阻才行。适合于做电流型的驱...
关键词: STM32 GPIO

http://www.eeworld.com.cn/mcu/2019/ic-news010942863.html 发布时间: 2019-01-09



stm32f1按键检测使用外部中断以及定时器延时方式去抖

本来一个按键检测是很简单的功能,在大学的时候做的51单片机矩阵键盘更要复杂,但是如果要在操作系统中使用按键并且很好的去除抖动,不影响整个rtos系统的运行,保证中断不会长时间占用CPU,达到快进快出的目的。就需要另外启动一个定时器来完成计时功能(比如去抖20ms)后,产生定时器中断后再次检测按键电平。    一般51或stm32按键检测流程:#define key1 GPIOC_11 void delay(uint32_t n ){ while(n--);} void key_detected(){    if (key1 == 0)...

http://www.eeworld.com.cn/mcu/2018/ic-news122742708.html 发布时间: 2018-12-27



stm32 奇怪的位赋值问题 出错了

1、在51单片机里 ,下面这两种操作方法都是一样的,没有什么问题!(1) 、OUT1_R1 是单片机的一个IO口 , dat是传进来的一个数据if ( (dat & 0x80) == 0)OUT1_R1 = 0; // 0是不亮,1是亮else OUT1_R1 = 1;(2)、OUT1_R1 = (dat&0x8000); // stm32里,这样操作不行,因为stm32里没有bit ; 在51里会自动把(dat&0x8000)强制转化为bit 。2、但是在编译 stm32的keil 里编译上面的两个程序,就发生了不同。在STM32里, (1) 是可以正常的往...
关键词: stm32 位赋值

http://www.eeworld.com.cn/mcu/2018/ic-news122542655.html 发布时间: 2018-12-25



STM32的GPIO内部结构及相关寄存器

学完大二上学期51单片机课程的寒假,在家我就开始捣鼓STM32了,记得那时候接触STM32感觉它很难,20多天下来就学习了RCC时钟体系和GPIO控制模块,开学后又开始忙一些有的没的,STM32的学习也搁置了,以至于后来跟学校当时在念博的老师交流时,我是这样描述我的STM32开发水平的:“我只会用GPIO写流水灯程序”,说来汗颜。最近一阵子又回归STM32学习之旅,对于GPIO模块其实很不想写文章,感觉在炒冷饭,不过,认真考虑后还是敲起了键盘,对于概念性的东西还是做一下笔记吧,编程方面的,挺简单,相关资料很多,就不记录了。1. GPIO简介GPIO是通用输入/输出端口的简称,是STM32可控制...

http://www.eeworld.com.cn/mcu/2018/ic-news122142635.html 发布时间: 2018-12-21



89c51中断系统及中断控制

现代的计算机都具有实时处理功能,当外界有突发事件时,cpu能够及时的做出处理,这就是靠中断来实现的。当CPU正在处理某一命令时,这时外部发生了某一事件(如电平的变化,或者定时器/计数器溢出时)请求CPU去处理该事件,于是CPU停止处理当前的事件,并保存当前停止时的地址,转去处理所发生的事件,处理完毕后,CPU返回原先保存的停止时的地址,继续处理原先的事件,这样的过程被称为中断。上图即为中断过程示意图,产生中断的请求源被称为中断源,中断源向CPU提出的处理请求被称为中断请求或中断申请。CPU暂时中止当前的事件,转去处理中断请求所对应的事件称为CPU的中断响应过程,对事件的整个处理过程称为中断服务...

http://www.eeworld.com.cn/mcu/2018/ic-news121942595.html 发布时间: 2018-12-19



C51单片机学习(二):中断系统和定时器

中断系统:中断概念CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生); CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务); 待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。中断的结构图  其中一些说明: 1、(P3.2)可由IT0(TCON.0)选择其为低电平有效还是下降 沿有效。当CPU检测到P3.2引脚上出现有效的中断信号时, 中断标志IE0(TCON.1)置1,向CPU申请中断。 2、(P3.3)可由IT1(TCON...

http://www.eeworld.com.cn/mcu/2018/ic-news121942591.html 发布时间: 2018-12-19



51定时器中断程序编写

上篇笔记记录到51单片机的中断允许寄存器、定时器/计数器工作方式寄存器(TMOD)、定时器/计数器控制寄存器(TCON)各位的作用。这些寄存器都是用来为编写定时器中断程序编写的初始化部分而服务的。然后今天再这里补填中断函数的编写格式,以后就可以编写定时器中断程序了。1.中断服务程序的写法C51的中断函数格式如下:void  函数名()  中断号 using 工作组{        中断服务程序内容}与一般的C语言程序相比,中断服务程序有一下特点中断函数不能返回任何值,所以函数名前用void;函数名随便起,但不能与C51语言中的关键字同...

http://www.eeworld.com.cn/mcu/2018/ic-news121942590.html 发布时间: 2018-12-19



51单片机中断处理函数能否影响全局变量

在用keil4.60写51的定时器中断处理函数的时候,遇到了这么一个纠结的问题,就是我定义了一个全局变量temp,一旦触发定时器中断进入处理函数时将temp=123,在开中断前temp=888,我本用keil调试看看里边的变量变化情况的,无意中发现keil竟然显示不了全局变量,只能显示当前调用函数的局部变量,这样一来靠调试我是完全不知道全局变量的值变成了什么。上网查了一下,竟然有人说中断处理函数不能改变全局变量的值,决定不相信,做个测试就知道了。昨天实验室没有51开发板来做测试,就只好先画了个proteus的仿真电路图,把程序下载进去看看运行的结果。如果处理函数可以改变全局变量,led2亮,否...

http://www.eeworld.com.cn/mcu/2018/ic-news121942588.html 发布时间: 2018-12-19



51的中断程序用C怎么写

用c语言的话中断程序是单独写在中断服务函数中的,51单片机的中断服务函数的定义:void functionname(void) interrupt num  //functionname是自己定义的函数名字,num对应实际的中断向量号 进入中断要执行中断子程序,不同的中断源要进入不同的中断子程序。对于51的C编程,可以用中断标号,如‘interrupt 0 ’来使中断进入不同的中断。中断标号与它们的中断优先级一致,即外部中断0 interrupt 0定时器中断0 interrupt 1外部中断1 interrupt 2定时器中断1 interrupt 3串行中断 inter...
关键词: 51 中断程序 C

http://www.eeworld.com.cn/mcu/2018/ic-news121942585.html 发布时间: 2018-12-19



关于如何利用Keil C实现51单片机中断功能

直接访问寄存器和端口 定义sfr P0 0x80sfr P1 0x81sfr ADCON; 0xDEsbit EA  0x9F操作ADCON = 0x08;  P1 = 0xFF;   io_status = P0 ;EA = 1;           在使用了interrupt 1 关键字之后,会自动生成中断向量       ...

http://www.eeworld.com.cn/mcu/2018/ic-news121842572.html 发布时间: 2018-12-18



基于S3C6410的ARM11学习(六) 核心初始化之关闭所有中断

上一次,我们完成了核心初始化之关闭看门狗了。下面就要关闭所有中断了。因为这个时候还在初始化整个硬件环境,应用程序还没有开始跑,所以是不希望有中断产生来打断CPU工作的。中断是嵌入式系统中很重要的东西了。因为有了这个东西,可以使CPU解放出来,做更多的事。学单片机的时候,对于按键,我们可以采用轮询检测,隔一段时间就去检测看看按键有没有按下,有按下的话就进行处理。没有的话就跳过。而使用外部中断后,就不必检测了,外部中断会自动检测,就不用CPU检测了。当外部中断有效后,外部中断模块就会产生一个中断源给CPU,CPU检测到这个中断源,再去执行对应的中断处理函数。比轮询法效率要高很多了。至于S3C641...

http://www.eeworld.com.cn/mcu/2018/ic-news121842556.html 发布时间: 2018-12-18



keil4中debug信号函数的简单使用

最近学习51单片机 , 通过keil的软件仿真功能来验证程序的正确性。 首先最可靠的信息来源是keil的帮助文件:如下图 signal functions   信号函数就是在debug的时候给你的程序输入一个信号的函数。 信号函数受到如下约束:函数以关键字signal开头函数的返回值类型必须为void函数最多只能有8个参数。信号函数之间不能相互调用。信号函数可以被用户函数调用。信号函数必须调用twatch(也可以是swatch)至少一次。如果信号函数从不调用twatch,则目标程序将得不到时间执行。而且由于不能使用Ctrl+C中断信号函数,在这...
关键词: keil4 debug 信号函数

http://www.eeworld.com.cn/mcu/2018/ic-news121742520.html 发布时间: 2018-12-17



一种智能电脑胎儿监护系统的设计浅析

智能胎儿监护系统选用TI公司生产的带24位A/D转换器并具有较强的模拟性能和数字处理能力的MSC1210微处理器,该微处理器把输入通道选择、缓冲、放大、增益调整、A/D转换和数字处理集成到单片电路上,仅用一片集成电路即可实现胎心率、宫缩压力和胎动次数等监护指标的数据采集和对语音器、声振器的控制。智能胎儿监控的控制依据是胎心率,如何精确及时得到胎心率是智能胎儿监护系统的控制前提。针对胎心多普勒信号具有信噪比低、非平稳的随机性特点,计算胎心率时出现1/2、2/3和2倍心率,导致控制失误,这里运用小波分析结合双重阈值算法,准确、实时得到胎心率,确保了智能控制的有效进行。智能电脑胎儿监护系统结构智能电...

http://www.eeworld.com.cn/medical_electronics/2018/ic-news12159183.html 发布时间: 2018-12-15



KST-STM32学习之基础知识

1、三大资源单片机用户来讲,单片机提供给的三大资源分别是程序存储空间、数据存储空间、特殊功能寄存器。2、STM32F103ZE 介绍512K 字节的 FLASH(程序存储空间)64K 字节的静态 SRAM(数据存储空间)大量的特殊功能寄存器提供给用户来实现其功能。STM32F103ZE 共 144 个引脚3.3V供电,注意与51的5V供电区分!3、工作的最小系统同51单片机类似,STM32仍需要单片机工作的最小系统,即:电源、晶振、复位。电源电路 STM32多电源供电,一个VDD引脚附近必然有一个VSS。同时需要注意,成对的VDD和VSS之间必须加上去耦电容,以保证实现EMC。STM...
关键词: KST-STM32 基础知识

http://www.eeworld.com.cn/mcu/2018/ic-news121442468.html 发布时间: 2018-12-14



单片机小知识总结

①RST复位电路51单片机是高电平复位,低电平正常工作 上电瞬间以及按下按键(电容相当于导线),RST为高电平。 按键按下的瞬间会产生大电流冲击,会局部产生较大的电磁干扰。为了减小这种干扰,加一个一个限流电阻。②有关RAM和FLASHSTC89C52RC系列单片机有512B的RAM以及8K的Flash(程序存储空间)RAM就是平时存储变量的,比如你定义了一个什么bit、uint8、 uint16 、uint32等等这些都是在RAM中定义的。 512B的RAM虽然名字一样,但是在物理结构以及用法是有区别的。 沿袭老8051单片机的叫法,依旧叫为片内RAM和...
关键词: 单片机 小知识

http://www.eeworld.com.cn/mcu/2018/ic-news121342441.html 发布时间: 2018-12-13



关于89C52单片机11.0592M晶振产生115200波特率的方法

当然下面所讨论产生115200波特率的最大难题就是因为它的时钟周期是等于12个机器周期的(12T模式)定时器T1要想作为波特率发生器,必须是工作在8位自动重装载模式下,并且禁止使能T1的中断! 还有一个重要的寄存器就是PCON了,最高位SMOD可以使得波特率加倍!当然这里由于这里的8位自动重装载模式的限制,也并不是像我们想象的那样,既然可以产生9600的波特率那个加倍以下不就是115200了嘛?!Too young, Too simple!先看两个公式吧,, 当波特率不加倍使用定时器T1,产生波特率的计算方法:TH1 = TL1 = 256 - 晶振值/12/2/16/波特...

http://www.eeworld.com.cn/mcu/2018/ic-news121342434.html 发布时间: 2018-12-13



LED是如何实现工作的?

现今人们看到最多的显示装置是什么?大家的回答想必都是显示屏,其实有一个已经融入我们生活各个角落的重要显示装置,那就是常见的小LED,他们是如何实现显示呢?上期我们从“蓝黑白金裙”之争说到屏幕图形格式转换,(详细可点击查看《【干货】从色彩角度看人机交互界面设计》),但显示装置除了屏幕外,还有很多不起眼但却融入我们生活各个角落的重要小角色,比如我们常见的LED,想要点亮他们其实可以更简单。LED大家族简述LED是Light Emitting Diode的缩写,即发光二极管,是一种应用非常广泛的半导体发光/显示元件。发光二极管是由Ⅲ-Ⅳ族化合物,如GaAs(砷化镓)、GaP(磷化镓)、GaAsP(磷...

http://www.eeworld.com.cn/xfdz/2018/ic-news121391835.html 发布时间: 2018-12-13



51单片机之忽略的东西

P0口将作为总线的低8位地址线和8位数据线使用P2口将作为总线的高8位地址线使用如果十六进制数以字母ABCDEF中的某一个开头,必须在前面加一个0.譬如,MOV P1, #0BFHORG 00H 表示的是伪指令,作用帮助汇编器汇编指令,并不是单片机指令的一部分,因此伪指令不占用存储器空间。这段代码的含义是从程序存储器的00H开始执行程序。一段小程序,循环闪烁小灯 ORG 00HSTART: MOV P1, #00H CALL DELAY MOV P1, #0FFH CALL DELAY JMP START DELAY: MOV R3, #50D1: MOV R4, #20D2: MOV R5,...
关键词: 51单片机

http://www.eeworld.com.cn/mcu/2018/ic-news121342422.html 发布时间: 2018-12-13



STM32定时器相关介绍(主要是有UEV更新事件介绍)

单片机的定时器的确很强大,参考说明书中就占了一百多页,占参考手册1/4 有多了。STM32的定时器分了好几个类别,各个类别针对功能作用都不大相同。分有: 一、高级定时器       二、通用定时器       三、基本定时器       四、看门狗定时器       五、SysTick定时器      其中看门狗定时器和SysTick定时...
关键词: STM32 定时器 UEV

http://www.eeworld.com.cn/mcu/2018/ic-news120342317.html 发布时间: 2018-12-03



STM32之独立看门狗的那些事

为什么MCU会具有看门狗呢?带着这个疑问,来了解看门狗的那些事。就连51单片机都带有看门狗,说明这条狗对我们来说有着不一般的意义。看门狗的目的一句话说:防止程序乱跑。MCU在不同的环境下程序的运行会受到干扰,比如陷入死循环怎么办?这就是养狗的好处呀,就算你没养过狗,你也看过猪跑吧。先看固件库的几个函数void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess);void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);void IWDG_SetReload(uint16_t Reload);void IWDG_Rel...
关键词: STM32 独立看门狗

http://www.eeworld.com.cn/mcu/2018/ic-news113042243.html 发布时间: 2018-11-30




<上一页 12345678910111213141516 下一页> 相关结果约8,867个