STM32杂记

1、stm32输入输出模式

        stm32共八种输入输出模式

 (1)输出模式

 推挽输出模式:pmos和nmos均可使用,即此时可输出高电平和低电平,但高电平电压最高为3.3v

 开漏输出模式:只有nmos可用,即此时无法输出高电平,但可外接上拉电阻实现输出高电平,此时高电平最高看上拉电阻。

复用推挽和复用开漏功能同上,复用模式时输出状态由单片机外设控制(IIC,USART等),普通模式由寄存器控制

(2)输入模式

上拉输入:即启用内部输入上拉电阻,即空闲状态下该脚点平为高电平,经过施密特触发器后变为0或1

下拉输入:即启用内部输入下拉电阻,即空闲状态下该脚电平为低电平,经过施密特触发器后变为0或1

浮空输入:既不使用上拉电阻也不使用下拉电阻,该状态下空闲时引脚电平开单片机心情

模拟输入:信号不经过上下拉电阻和施密特触发器(保持信号原汁原味),此状态可用于读取引脚电压大小

ps:单片机在输出状态下不影响输入(模拟输入除外)

2、stm32中NVIC中断

STM32中共有19条(0-18)EXTI线,

        其中EXTI0_15为GPIO中断线(中断部分)

        EXTI线16连接道PVD输出、EXTI17为RTC闹钟、EXTI18为USB唤醒事件。(事件部分)

NVIC控制部分

        NVIC内部为向量表,根据触发中断的EXTI线调用响应的处理函数(ps:调用完成后记得清零中断屏蔽寄存器响应的位,避免重复中断)

ps:系统延时函数的原理即为中断,通过滴答定时器中断来确定延时时间,滴答定时器的中断优先级为15(最低),故建议在中断中使用延时函数(不听话非要使用的话就先修改滴答定时器中断优先级)

3、usart通信

        串口通信为异步全双工通信模式

        轮询模式下需要设置等待时间,一直占用CPU资源

        中断模式下在接受完一段字节后进入中断,中断仍需CPU来处理

        空闲中断+DMA可实现自动处理数据,可实现不定长数据包收发,并大大节约CPU资源

4、IIC通信

        IIC通信为同步半双工通信(SCL、SDA(开漏输出模式))

        速度:低速100k,高速:400k

        开始信号为SCL高电平时SDA由高电平变为低电平、结束信号为SCL高电平期间SDA由低电平变为高电平,传输数据时SDA需在SCL低电平期间改变SDA状态,从机可在SCL高电平期间读取SDA数据。

        IIC通信也可以使用中断+DMA来节约CPU资源

大佬的取模助手https://led.baud-dance.com

5、时钟源

内容参考自B站大佬  keysking

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值