在初始化外设和GPIO时您觉得是先初始化配置GPIO然后再初始化其他外设(比如PWM);还是先配置其他外设再去配置GPIO?
通过实验进行PWM配置和GPIO配置先后顺序对比(期望上电初,被配置为PWM的GPIO口在上电初输出无效电平,本实验设定高电平为无效)
发现,如果先配置GPIO,上电初被配置为PWM的GPIO口,会在PWM配置之前,拉为低电平(即有效),意味着上电初有可能使外部电路误动作,这种配置方法显然不可取。
如果先对PWM寄存器进行配置,配置完之后再去配置GPIO的功能,在上电初,被配置为PWM口的GPIO口电平始终保持高电平(无效电平),这样上电初外部电路就不会误动作,这也是想要的结果。
从DSP的结构来看,GPIO口多具复用功能,GPIO口的引脚是直接连到外部电路,相当于GPIO是最后一道关卡,如果外设的寄存器还没有按照预想的配置完成,先配置了GPIO口,以为这上电初GPIO口的输出电平是一个未知态(应该是DSP的默认态),也许这个上电初的默认态不是我们想要的就会造成我们设计的电路误动作,为了保证我们设计的电路在上电初不被误动作,上电初我们期望GPIO的引脚电平是我们的期望电平,因此我们需要先对外设的寄存器进行预期初始化,最后再对GPIO口的功能进行配置。
就好比GPIO配置为通用IO口时,我们需要先对其数据寄存器进行设置,然后再去设置其方向,这样上电初,如果GPIO被配置成输出口,其输出电平就是我们前面设置的。想反,如果先设置方向再去设置数据寄存器的值,则上电初会有一小段输出电平是DSP的默认值而不是我们的期望值。
鄙人理解不知道是否正确,烦请同道中人解说,谢谢!