自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 STM32学习13:对射式红外传感器计次

当这种其他外设使用GPIO的情况,需要查阅STM32F10xxx参考手册,在GPIO章节下的“外设的GPIO配置”表中,有每个外设的各个引脚都需要配置的模式。总结:若想在主函数中查看或清除标志位,则需要162、163行,若想在中断函数里查看或清除标志位,则用164、165行。159行,对EXTI_InitStruct结构体里的参数配置EXTI外设,即初始化EXTI。361行,锁定GPIO配置:锁定某个引脚的配置,防止意外更改。365行,配置AFIO的数据选择器,来选择想要的中断引脚。

2024-03-15 14:57:40 484

原创 STM32学习12:旋转编码器

对STM32来说,旋转编码器的信号是突发且迅速的,同时它是外部驱动的,STM32只能被动读取。此时,可以考虑使用STM32的外部中断,一旦有脉冲,STM32就立即进入中断函数处理。不推荐使用外部中断来读取按键,因为外部中断不好处理按键抖动的问题。可以使在主程序循环中读取或使用定时器中断的方式读取。

2024-03-14 17:17:12 514

原创 STM32学习11:NVIC基本结构与EXTI外部中断

当主程序执行到某个地方时,外设的中断条件满足,则主程序立刻暂停,程序由硬件电路跳转到中断程序中当中断程序正在执行时,又有新的优先级更高的中断出现,则会打断中断程序的运行,执行新的中断一般中断程序都会在一个子函数中,这个子函数不需人为调用,当中断来临时,硬件自动调用此函数。

2024-03-14 17:16:17 404

原创 STM32学习10:调试与OLED显示屏

左图是4针脚版本的OLED,其中,SCL和SDA是I2C的通信引脚。由于江协科技给的驱动函数模块使用的是GPIO口模拟的I2C通信,所以这两个引脚可以接在任意的GPIO口上。右图是3针脚版本的OLED,其中,D0、D1、RES、DC和CS是SPI的通信引脚,也可以由GPIO口模拟通信协议。此图是江协科技提供的OLED驱动函数。

2024-03-13 15:07:26 396

原创 STM32学习9:模块化编程

分别添加各个模块的.c和.h文件。.c用来存放驱动程序的主体代码,.h用来存放这个驱动程序可以对外提供的函数或变量的声明。3、在main.c文件里,写上#include "LED.h",并在主函数中调用LED _Init()并编译。当使用外设模块较多时(比如LED和按键),可以分别将其驱动代码封装起来。

2024-03-13 01:39:09 362

原创 STM32学习8:C语言数据类型、宏定义、typedef与结构体及枚举

51单片机中int占16位,STM32中int占32位。推荐使用stdint.h文件对这些数据类型的重命名。typedef专用于对数据类型重命名。

2024-03-12 21:25:56 386

原创 STM32学习7:按键与传感器

第四张小图外接了一个下拉电阻,当按键按下时引脚接到了3.3V,所以引脚为高电平。当按键松开时,引脚由于下拉作用,保持为低电平。第二张小图外接了一个上拉电阻,当按键按下时引脚接到了GND,所以引脚为低电平。当按键松开时,引脚由于上拉作用,保持为高电平。当按键按下时,PA0被下拉到GND,当按键松手时,PA0被上拉到高电平。第五张小图是传感器模块电路,DO数字输出接一个端口(如PA0),用于读取数字量,AO模拟输出涉及ADC模数转换器,暂不讨论。当按键按下时,引脚为高电平,松手时引脚为低电平。

2024-03-12 21:13:49 379 1

原创 STM32学习6:Delay延时函数与GPIO初始化及调试端口

在Delay.h文件中,有三个延时函数:在Delay.c文件中,可以看到该函数是用SysTick定时器实现的延时:使用Delay延时函数模块时,需要在main.c文件上方写上:GPIO初始化复制结构体名字后,可以用“.”将结构体的成员都引出来: 在开启时钟时,可以使用“按位或”来同时选择多个外设:在赋值GPIO引脚时,也可以使用“按位或”来同时赋值多个引脚:或直接赋值所有引脚:

2024-03-12 14:55:19 850 1

原创 STM32学习5:GPIO输入输出函数

其中,最常用的是692、693、694行函数,即RCC AHB外设时钟控制、RCC APB2 外设时钟控制、RCC APB1 外设时钟控制,它们均可通过在编译后右键函数跳转到定义来查看。2、使用GPIO_Init函数初始化GPIO。351行:用结构体的参数来初始化GPIO口。这里总共涉及到RCC和GPIO两个外设。3、使用输出或输入函数控制GPIO口。349行:将指定的GPIO外设复位。353~356行:GPIO读取函数。357~360行:GPIO写入函数。1、使用RCC开启GPIO时钟。

2024-03-12 13:17:38 515 1

原创 C语言学习8:字符的输入输出

执行getchar函数时,不仅可以从输入设备获得一个可显示的字符,而且可以获得在屏幕上无法显示的字符,如控制字符。putchar函数既可以输出能在屏幕上显示的字符,也可以输出控制字符。1、字符输入:用getchar函数输入一个字符。2、字符输出:用putchar函数输出一个字符。此时,变量b的值为换行符。

2024-03-10 13:59:27 325 1

原创 C语言学习7:运算符与表达式

在C语言中,表达式是由常量、变量、运算符以及函数调用等组成的,一般用于计算一个值。2、赋值运算符=:右结合。例如:i=j=k=0等价于:i=(j=(k=0))当进行除法运算时,若两个操作数都是整数,运算符/会丢掉分数部分来截取结果。9、复合表达式:复合表达式是由多个子表达式通过运算符连接起来的。一元运算符是右结合的,例如:-+i等价于-(+i)3、复合赋值运算符:+=,-=,*=,/=,%=自增自减运算符既可作前缀,也可作后缀。4、自增和自减运算符:++和--举例:i+=1等价于i=i+1。

2024-03-10 12:37:01 366 1

原创 C语言学习6:数据类型转换

(1)进行不同类型的数据运算时,系统会自动将取值范围小的数据类型转换为取值范围大的数据类型。(2)short、char类型的数据在运算的时候,先提升为int类型,再进行运算。当需要将取值范围大的数据类型转换为取值范围小的数据类型时,需要进行强制类型转换。

2024-03-10 10:59:06 342 1

原创 C语言学习5:格式化输入与输出

即scanf函数会把他们看作一个连续的字符流,并将i赋为1,将j赋为-20,将x赋为0.300000,将y赋为-4000.000000。当程序调用scanf函数时,scanf函数会忽略空白字符(包括空格符、水平和垂直制表符、换页符和换行符)。在“ ”之间,最好不要放置转义序列因为他们会被当作普通字符处理。1、格式化输入:scanf("%变量类型",&变量名);2、格式化输出:printf("%变量类型",变量名);若想输出字符 " 时,则需要放置转义序列 \"。若想输出字符 \ 时,则需要放置 \\。

2024-03-10 01:26:02 539 1

原创 STM32学习4:LED与蜂鸣器

2、无源蜂鸣器:内部不带震荡源,需要控制器提供震荡脉冲才可发声,调整提供震荡脉冲的频率,可发出不同频率的声音。1、有源蜂鸣器:内部自带震荡源,将正负极接上直流电压即可持续发声,频率固定,低电平触发(鸣响)。LED:发光二极管,只有正向导通时才亮。

2024-03-09 17:32:27 302 1

原创 STM32学习3:系统结构与GPIO输入输出

可以作为通信协议的驱动方式。GPIO在输入模式下可以读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。ps:在8种模式下,只有模拟输入模式会关闭施密特触发器,这种模式使得GPIO能够直接接收模拟信号,而无需经过数字转换。GPIO在输出模式下可以控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等。3、浮空输入:当外部没有信号输入时,引脚电平状态不稳定,容易受到外部噪声的干扰。2、下拉输入:可读取引脚电平,引脚悬空时默认输入低电平。

2024-03-09 17:06:01 372 1

原创 STM32学习2:芯片的命名规则与C8T6引脚定义及启动配置

来源:江协科技PPT。

2024-03-09 15:35:58 430 1

原创 STM32学习1:主流系列与外设

STM32:ST公司开发的一款基于ARM Cortex-M内核开发的32位微控制器。(注:STM32学习系列是本人看江协科技的课所记的笔记)4、ROM程序存储器:64K(Flash)5、供电:2.0~3.6V(标准3.3V)3、RAM运行内存:20K(SRAM)1、内核:ARM Cortex-M3。主流系列:STM32F1。6、封装:LQFP48。2、主频:72MHz。

2024-03-09 15:20:57 611 1

原创 C语言学习4:数据类型

计算机内最小单位为比特(bit),而一个字节(Byte)的大小等于8比特。(5)枚举enum:可以列举出所有可能的取值,并且每种可能的取值都是常量。(3)结构体struct:由多个不同类型的数据组成的复合数据类型。(4)联合union:允许在相同的内存位置存储不同的数据类型。(3)浮点型:①float单精度浮点型,大小通常为4个字节。(1)整型:①int整型,大小为2或4或8字节。(2)数组:一系列相同类型的元素的集合。(2)char字符型:,通常1个字节。(1)指针:指向其他变量或对象的地址。

2024-03-09 01:22:31 274 1

原创 C语言学习3:注释与预处理指令

1.单行注释://...2.多行注释:/*...*/

2024-03-02 15:39:51 293

原创 C语言学习2:常量与变量及标识符

用来对变量、符号常量名、函数、数组、类型等命名的有效字符序列,只能由字母、数字、下划线构成,且第1个字符必须为字母或下划线。变量代表一个有名字的、具有特定属性的存储单元,它必须先定义,后使用。(4)字符串常量:用双撇号框起来的一串字符,如:"boy","123"。(5)符号常量:用#define指令指定一个符号名称代表一个常量。②指数形式:3.14e2(314),-3.14E2(-314)①十进制小数形式:12.34,-3.14,0.0。(1)整型常量:1,-1,056,0x8A。

2024-03-02 14:45:18 385

原创 C语言学习1:进制类型与有符号整数的二进制表示方法

编写C语言代码时,使用八进制时必须在开头加数字0,使用十六进制时必须在开头加0x。同时,C99标准也引入使用前缀0b来表示一个二进制数。补码:正数的补码与其原码反码都相同;负数的补码是其反码加 1。计算机中有符号位均用其补码表示。反码:正数的反码与其原码相同,负数的反码是其原码除标志位外其余位取反。原码:首位为标志位(0为正,1为负)

2024-03-01 21:08:02 364

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除