Fanexs168 发表于 2022-10-12 14:32

OSCIN/OSCOUT配置为普通IO PA1 PA2使用,异常

问题背景
客户期望把外部HXT晶振输入脚OSCIN/OSCOUT配置为普通IO PA1 PA2使用,但实测发现无法生效。示波器检测PA1 PA2波形,发现电平持续为2V左右的高电平,猜测是受到(HXT_EN)HSE_EN的置位影响。

   

实测

[*]调用RCM_DisableHXT()或者在SystemInit()里清除RCM->ECC寄存器值都没效果。
[*]表现为——上电后HXTEN就已经置1。
[*]擦除用户APP Flash程序后,PA1 PA2还是维持2V高电平,且此时demo板的外部HXT 16MHz晶振已经拆除。

   
   
   

解决方案:

[*]了解发现,F003芯片,受出厂配置选项字的影响,一般默认HXTEN置位开启
[*]如需要关闭HXTEN,需要单独清除选项字,然后进行复位操作——推荐在程序最开始的初始化先执行这段代码


   
if(RCM->ECC_B.HXTEN == BIT_SET){//先判断HXEEN的置位与否,再选择执行擦除选项字的操作
FMC_Unlock();
if(((*(uint32_t*) 0x20400 >> 19) & 0x01 )==1){
FMC_EraseOptionByte();
FMC_ProgramOptionByte(0x20402, 0xF7);
}
FMC_Lock();
NVIC_SystemReset();//操作完选项字后,进行系统软件复位
}

bestwell 发表于 2022-11-2 19:55

OSCOUT脚怎么配置成IO

wilhelmina2 发表于 2022-11-2 20:24

肯定可以当IO使用,只是不要使能HSE。

rosemoore 发表于 2022-11-2 20:56

在IO引脚资源紧张的情况下,我们可能需要将 OSCIN 、 OSCOUT 引脚作为普通的GPIO使用。

Fanexs168 发表于 2022-11-3 10:17

bestwell 发表于 2022-11-2 19:55
OSCOUT脚怎么配置成IO

当做普通GPIO一样初始化配置就行,不需要额外复用配置
页: [1]
查看完整版本: OSCIN/OSCOUT配置为普通IO PA1 PA2使用,异常