原创 Stm32为什么需要模块的DeInit()函数

2015-4-1 21:52 6750 19 20 分类: MCU/ 嵌入式

一直有一个疑惑,为什么Stm32的每个模块基本上都有一个DeInit()函数。这个函数是否和Init()函数在功能上重复了。查过一部分资料以后,发现有以下的说法:

    在main()函数开始时,不管各模块处于什么状态,先执行该模块的DeInit()操作,然后在程序中较晚的时间或真正需要时再开启相应的模块。这样保证在刚进入调试状态时,调试器能够有充足的时间完成初始化和下载程序的操作。先执行该模块的DeInit()操作的目的是为了关闭哪些上一次操作开启的模块。

文章评论1条评论)

登录后参与讨论

hzddyx_297768481 2015-4-7 21:00

赞一个!

相关推荐阅读
用户1710664 2016-03-23 16:30
2016.03.23 日记
    马上就下班了,趁着这5分钟,写一下今天的工作日记。     这两天的工作状态非常好,很少中途分心。前几天,把CC2640的工作分给了新来的同事,自己则专心处理现在手头的一大堆乱麻。心里...
用户1710664 2016-01-10 16:34
MCU代码通用设置
入行已经三年多了,已经在Cypress开发过一套比较完整的电机控制代码了,结果昨天除了些奇怪的问题,花了点时间找到原因,结果是一些比较低级的错误,先记录下来: 1. 在main()函数开始的时...
用户1710664 2016-01-10 16:16
Stm32项目中遇到的一些问题以及解决办法
USART:    1. 问题描述:使用中断接收数据时,DR中数值正确,但是RXNE始终是0,没有置位。  solution:经过半天的检查以后,发现在中断函数中使用错了一个函数,应该...
用户1710664 2015-10-26 18:36
给CC2640烧写代码时遇到的问题
IAR版本:7.40.3  ;蓝牙栈:2.1  ; jlink驱动版本:4.96 一开始不能编译,后来重新安装蓝牙栈,把32位机上IAR的环境变量中的(x86)去除,解决问题。 但是在用j...
用户1710664 2015-10-26 18:29
特别注意代码的边界情况
1.在mcu计算的过程中,把常数*常数的变量都单独提炼到条件编译中,并且制定数据类型和位数。防止 计算出结果的类型和想象中的不一致。 2.不光要留意乘法是否超出最大值,还要留意进行除法以后,一...
用户1710664 2015-06-10 22:10
Volatile的陷阱
最近写的关于在嵌入式开发中常遇到的关于volatile关键字使用的短文,都是些通用的技术,贴上来share。 对于volatile关键字,大部分的C语言教材都是一笔带过,并没有做太过深入的分析,所...
我要评论
1
19
关闭 站长推荐上一条 /2 下一条