STM32管脚的一些笔记

中文参考手册P110 8.1.11外设的GPIO配置,列出了各个外设的引脚配置。
8.3复用功能I/O和调试配置(AFIO)

挂载在APB2下的内置外设,如ADC1/2,TIM1,SPI1,USART1,算是管脚复用,但不需要打开AFIO时钟,直接打开相应内置外设时钟。
挂载在APB1下的内置外设,如TIM2/3/4,SPI2,USART2/3,I2C1/2,CAN也不用打开AFIO,直接打开相应外设时钟即可。(固件库中文版Table 373、Table 375)

复用只需使能相应外设时钟,但管脚需要设置成复用状态。
重映射还需要使能AFIO时钟,外部中断也需要使用AFIO时钟。
在使用一个内置外设的时候,我们首先要使能相应的 GPIO 时钟,然后使能内置外设时钟。

浮空输入不稳定,影响程序运行,一般可配置成上拉或者下拉(注意灌电流)。最好在外面设计一个上拉或下拉。

data&0xff这个操作是取低八位,通常与<<,>>移位符配合使用。另一个原因是与补码相关的,具体博客详解&0xff的意义及作用(byte为什么要与上0xff):当系统检测到data可能会转化成int或者说data与int类型进行运算的时候,就会将data的内存空间高位补1(也就是按符号位补位)扩充到32位再参与运算,这样的话-127&0xff的结果就是129了,不再是-127

A&=~A,清零操作。
A|=1,置1操作。对第i位置1,A|=(1<<i)

SensorLevel |=(TempSensor[0]&TempSensor[1]&TempSensor[2]);
SensorLevel &=(TempSensor[0]|TempSensor[1]|TempSensor[2]);//消抖(也可用i++,读多次)

与或消抖或者i++消抖

上下锁存
ABPortLockData |= ((~(ABPortLevelData|ABPortLockDir))|(ABPortLevelData&ABPortLockDir));

整流二极管用1N4001到4007 整流二极管,1N4007耐压1000V,在小电流不重要的场合可与1N4148互换使用。
快恢复二极管1N4148 高频检波,小电流高频开关二极管,耐压小于100V
1N5819 正向反向耐压较低,稳压,频率快但小于1N4148

中断服务例程(interrupt service routine,ISR)
中断一般是由硬件(例如外设、外部引脚)产生,
内核中断(systick、异常管理和休眠模式等),其中断优先级由SCB寄存器来管理,IRQ的中断优先级由NVIC来管理。
中断事件会导致中断,但由于各种原因,中断无法执行的话,会被挂起,pendingbit。如果中断被响应,则硬件自动清除pendingbit。
在中断中尽量使用PPP_ClearITPendingBit();非中断使用PPP_ClearFlag().

用systick中断来进行类似定时的操作,不添加启动文件时间将不准确

电源处去耦电容一般10nF(104),具体看芯片手册上的通用模型介绍。
CAN差分信号终端电阻120Ω左右,具体看芯片。终端电阻如果分成两个,中间接电容接地,电容一般为105(100nF)。

GPIO的设置需要指定速度,否则IO默认为输入。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值