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

[复制链接]
1535|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的库函数操作中出现,这个很有必要。

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则