stm32—8种工作模式及外部中断,串口

151 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第33天,点击查看活动详情

一、8种工作模式

1.1、输入浮空

端口电平未知的,由外部决定

1.2、输入上拉

无信号输入时,为高电平

1.3、输入下拉

无信号输入时,为低电平

1.4、模拟输入

可以用于AD转换,测电压

1.5、开漏输出

注:一般用于总线(iic,spi),输出高阻态表示高电平。 只能输出低电平 只能通过加上拉电阻输出高电平(输出多少v,取决于上拉电阻接多少v)

1.6、推挽式输出

开关效率高,电流大,驱动能力强

1.7、推挽式复用输出

复用功能

1.8、开漏复用功能

复用功能

二、外部中断

2.1.PA0作为外部中断,库函数

2.1.1、开时钟并配置CRL(初始化GPIO)

在这里插入图片描述 模式设置为浮空输入 因为是输入模式,所以不用设置速度

2.1.2、初始化中断(相当于外设)

在这里插入图片描述 选择端口引脚 开AFIO时钟 初始化中断: 选择中断口0~19 选择模式,中断或事件 选择触发形式,上升沿或下降沿或都触发 使能打开中断

2.1.3、配置中断优先级

在这里插入图片描述 配置优先级分组:0~4 结构体变量: 选择配置哪个中断 主优先级 副优先级 使能开启 在这里插入图片描述 在这里插入图片描述

2.1.3、编写中断服务函数

在这里插入图片描述 在这里插入图片描述 在stm32f10x_exti.h里面写中断函数 中断名在启动文件里面找

三、串口

PA9(TX),PA10(RX)

3.1、端口初始化

1.开启PA时钟 2.PA9复用推挽输出,50MHz 3.PA10浮空输入 在这里插入图片描述

3.2、初始化外设

1.开外设时钟USART1 2.配置外设寄存器 波特率:115200 传输位数:8位 停止位数:1位 校验位:无校验 发送接收使能 硬件流控制失能 在这里插入图片描述

在这里插入图片描述

3.3、初始化中断

1.配置优先级分组:0~4 2.中断初始化 中断通道(配置哪个中断) 主优先级1 副优先级1 使能开启 在这里插入图片描述

3.4、使能中断

USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); 在这里插入图片描述

3.5、使能外设

USART_Cmd(USART1,ENABLE); 在这里插入图片描述

3.5、发送数据

形参1:外设 形参2:数据 1.发送函数(外设,数据可以是16或8位) 2.等待发送结束 在这里插入图片描述

在这里插入图片描述

3.6、发送数据(数组,字符)

3.6.1、发2字节

在这里插入图片描述

3.6.2、发数组

在这里插入图片描述

3.6.3、发字符串

在这里插入图片描述

3.6.4、printf和scanf发

注意:要使用printf,必须勾上,不然程序阻塞 在这里插入图片描述 在这里插入图片描述

3.7、主函数

在这里插入图片描述 注:windows下要\r\n才能回车,Linux下\n就可以起到回车作用(换行\r回车\n)

3.8、中断

在这里插入图片描述 发送过去后立马发回来