如图
VCC1 = 5v
VCC2 = 3.3v
GND1和GND2不共地
R1 = R2 =10k
R3 = 1k
中间是个光耦,起隔离作用
stm32f0设置为上拉输入,其他没做任何设置
当input VCC1 = 0v时,output是3.3v
input VCC1 = 5v时,光耦导通,output理论上会被拉低
那么stm32f0检测到电平变化,从而得知input VCC1这时候是5v
但是,实际情况中,开关几次后,芯片就被烧了,连调试connect都不行了
最开始是没有R3的,output直接接PA1,烧了几次以后,加了R3,但还是烧
觉得很困惑,有R2在,电流大不到哪里去啊,而且光耦的标准用法也是这样的
引脚配置为up和nopull都试过了,难道stm32f0这么脆弱
后来把R2 R3去掉,PA1设置为上拉,倒是不烧芯片了,但是我PA1/PA2/PA3都是这个电路,检测三路input,发现会互相影响,只有一路input的时候,三路output会全高或者全低,PA1和PA2影响最为显著,PA3有些滞后,R2依旧不加,把R3再给加上,还是如此
请问如果不用光耦,还有别的什么简易的方法可以实现检测三路input,VCC1从0到5v,stm32引脚变高低电平吗?input和output是不共地的。
|