我把几个时钟源都打开了, PA8口也配置成辅助功能输出了, 输出信号不论选择的是HSE,HSI, 在DEBUG的时候,2个LED信号(PB0、PB5)能正常翻转,但是MCO(PA8)信号,始终都是0。 为什么,什么原因会造成这种情况呢?
int main(void)
{
Stm32_Clock_Init(9); //系统时钟设置
delay_init(72); //延时初始化
LED_Iinit();
RCC->APB2ENR |= 1<<2; //开PA的时钟,
GPIOA->CRH &= 0XFFFFFFF0; //清空旧设置,
GPIOA->CRH |= 0X0000000B; //配置为复用推挽输出,50MHz
//GPIOA->ODR |= 1<<8; //PA8=1
RCC->CFGR|=0x05000000;//MCO:HSE
while(1)
{
//LED0 = 1;
//LED1 = 1;
GPIOB->ODR |= 0X00000020; //总线操作
GPIOE->ODR |= 0X00000020;
delay_ms(5);
//LED0 = 0;
//LED1 = 0;
PBout(5) = 0; //位操作
PEout(5) = 0;
delay_ms(5);
}
}
在CubeMX中PA8输出MCO的配置是这样的:
GPIO_InitStruct.Pin = GPIO_PIN_8;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
GPIO_InitStruct.Pull = GPIO_PULLUP;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
GPIO_InitStruct.Alternate = GPIO_AF0_MCO;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
初始化后还要一句:
HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_HSI, RCC_MCODIV_1);
楼主可以参照一下,检查是哪个设置遗漏了。
评分
查看全部评分
评分
查看全部评分
应该怎样打开,MCO功能 ?
因此,如果要验证MCO,那么用实体板卡跑个程序就知道了。
评分
查看全部评分
困惑了几天的问题,最终的结果是:软件没这个功能,臣妾做不到呀......唉,是我想多了。
评分
查看全部评分
感谢你。