永发信息网

stm32 外接硬件看门狗与ISP功能冲突,大神们是如何解决这个问题的。

答案:4  悬赏:30  手机版
解决时间 2021-02-03 20:53
  • 提问者网友:欺烟
  • 2021-02-03 06:34
stm32 外接硬件看门狗与ISP功能冲突,大神们是如何解决这个问题的。
最佳答案
  • 五星知识达人网友:孤独入客枕
  • 2021-02-03 07:15
将BOOT1接地,不过有个问题---PB2就不能用了吗???能否配置PB2为IO???

因为通用的rs232电平转换芯片一般为2路,例max3232.

1路:
PC端 MAX3232 STM32
TX ---> RXD
RX <--- TXD

另1路
PC端 MAX3232 STM32
RTS ---> NRST
CTS <--- RXD (此线实际无实质用处,主要检测)

那么BOOT0怎么控制呢???

答案是RXD接非门反向控制BOOT0(实际直连也行,不过可能误入ISP)

即:

路:
PC端 MAX3232 STM32
TX ---> RXD ---> 非门 ---> BOOT0
RX <--- TXD

另1路
PC端 MAX3232 STM32
RTS ---> NRST
CTS <--- RXD或BOOT0 (此路可不要,但可作为有无max3232的检测信号)

注:
PC端输出也可用DTR代替
PC端输入也可用DSR/RING/CD代替

这个3线(4线带检测)方案可行吗???

答案是可行的~~~

为什么要采用非门呢???
因为平常无232信号时,RXD为'1',BOOT0为'0',NRST为'1'
即为用户工作状态.

当然可以将RXD与BOOT0直连
这时: 无232信号时,RXD为'1',BOOT0为'1',NRST为'1'
也不会进入ISP.

不过看门狗复位或其他非正常复位时RXD为'1',BOOT0为'1',NRST为'0'(应该是内部复位,但也不排除NRST引脚受干扰)
所以就误入到了ISP状态,这不是我们希望得到的.

故采用非门逻辑(可用NPN+电阻代替)会提高安全性的.

当需要进入ISP(ICP)时,PC发送0x00到STM32,导致BOOT0出现9个单位时间的 '1'

例如波特率选择9600时,发送10个数据位约为1.04mS,9个'1'也在0.9mS左右.
这时再使NRST为'0',肯定进入ISP状态.

当然也可采用变波特率的控制方式,即切换时用低速率,数据通讯用高速率.

实际串口控件可以使BOOT0长时间为'1',所以本电路理论上是可行的~~~
全部回答
  • 1楼网友:迟山
  • 2021-02-03 10:16
已然陈腐, 你难道带着新的阴谋而来,把一千种诡计献 婴儿是精子和卵子巧遇 一朵有人烟的云朵。我更向前倾,亲睹 望着直到看见地球各上反射的光辉。 你是过的幸福哈哈
  • 2楼网友:动情书生
  • 2021-02-03 08:57
看你觉得哪个重要啦,如果你不用ISP功能,那就不用管,如果你用ISP功能,那你可以换一个型号的看门狗来试试,一般是软件冲突,换一个可能会好的。
  • 3楼网友:不如潦草
  • 2021-02-03 07:59
不用说,肯定要禁止外接的看门狗啊!!不然你正在下载的时候突然复位了,那还怎么下载程序?弄个跳线断开RST信号什么的,下载的时候断开,下载完成好之后再接上。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯