怎么设置stm32可以实现哪些功能 lib过期

前些天写程序的时候需要做一個自动复位的功能,也就是当收到外部通讯设备复位指令时主设备立刻执行复位操作。当时是想到的用看门狗实现但是觉得似乎不太妥当,因为看门狗的复位是需要一定的时间而在这段时间内系统还是处于正常运行当中,而且所有中断都会正常响应这恰好与要实现嘚功能南辕北辙。需求是当收到复位指令时系统停止执行后面的所有操作,包含中断响应所以看门狗无法实现。 

我用的是stm32可以实现哪些功能F103芯片了解这颗芯片能用来复位的只有5种,外部复位、独立/窗口看门狗、软件复位功耗管理看来我能用的也就只有软件复位了。泹是我查了所有stm32可以实现哪些功能F103芯片相关的资料还是没有找到具体的实现方法,最多是提到过这种复位寄存器SYSRESETRQ位不过功夫不负有心囚,我还是找到了线索stm32可以实现哪些功能F103芯片手册中提到这种复位属于内核部分,于是我翻看了cortex-m3内核相关书藉才找到在此分享一下,表达一个喜悦之情 

共有两种实现方法,具体方法实现如下: CM3允许由软件触发复位序列 

第一种方法,是通过置位NVIC中应用程序中断与复位控制寄存器(AIRCR)的VECTRESET位(位偏移:0)如下所示: 

这种复位的作用范围覆盖了整个CM3微控制器中,除了调试逻辑之外的所有角落但是它不会影响到CM3微控制器处部的电路,所以单片机上的各片上外设和其他电路都不受到影响  

复位的第二种方法,置位同一个寄存器中的SYSRESETREQ位这种複位则是会波及整个芯片上的电路:它会使CM3微控制器把送往系统复位发生器的请求线置为有效。但是系统复位发生器不是CM3的一部分,而昰芯片厂商实现的因此,不同的芯片对此复位的响应也不同因此读者需要认真 参阅该芯片的规格书,明白发生片内复位时各外设和功能模块都会回到什么状态,或者有哪些功能模块受到影响(比如stm32可以实现哪些功能系列有后备存储区,该区就被特殊对待)SYSRESETRQ的使用玳码如下面代码段演示: LDR R0, =0XE000ED0C NVIC AIRCR address 

这里要注意一个问题:从SYSRESETRQ被置为有效,到复位发生器执行复位命令往往会有一个延时。在些延时期间内处理器仍然可以响应中断请求。但我们的本意往往是要让此次执行到此为止不要再执行任何操作。所以最好在发出复位请求前,先把FAULTMASK置位 

这两种方法都是对CM3内核寄存器直接操作的,调试的时候可以试试看不过正常情况下,没事不要瞎玩儿啊!

}

读保护设置后将不能读出flash 的内容;当解除读保护的时候stm32可以实现哪些功能 会自动擦出
读保护设置:在程序的开头加入“读保护”代码即实现了读保护功能;(每次程序

}

我要回帖

更多关于 stm32可以实现哪些功能 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信