[技术问答] 外设初始化相关问题

[复制链接]
3665|3
 楼主| lishuai666 发表于 2021-11-12 13:54 | 显示全部楼层 |阅读模式
ADC, AD, dc, ck, BLE, Gen
因为公司的芯片国产化需求,近期开始学习杰发科技AC7811x系类单片机。想问一下各位大佬:在外设初始化的过程中,为什么在初始化外设时钟以后要软件复位一下相关的外设。
例如下面的ADC外设:
void ADC_ModuleEnable(ADC_Type* ADCx)
{
    /********************Enable ADC Clock************************/
   ①CKGEN_Enable(CLK_ADC, 1);
   ②CKGEN_SoftReset(SRST_ADC, 1);
    /************************************************************/
}

想问一下各位,第二个函数有什么作用?
欢迎各位大佬积极留言。。。。。。。
gouguoccc 发表于 2021-11-12 19:28 来自手机 | 显示全部楼层
这个应该是从ST继承过来的,ST在初始化外设前也会调用默认初始化接口函数,目的是确保外设处于上电时的默认配置。
cainiao518 发表于 2021-11-13 09:37 | 显示全部楼层
跟芯片复位一个原理
天意无罪 发表于 2021-11-13 11:37 | 显示全部楼层
主要是2个目的,一个是上电后,在初始化外设前确保其所有寄存器的值为默认值,另一个就是,在软件复位或运行过程中需要重新对某个外设进行初始化操作时,确保其外设寄存器值为默认值。最早是在ST的库函数操作中出现,这个很有必要。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部