MCO(PA8)在DEBUG的时候不输出波形,会是什么原因??
我把几个时钟源都打开了, 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);
}
}
本帖最后由 wenyangzeng 于 2019-4-19 21:27 编辑
csz9981 发表于 2019-4-19 20:16
编码如下:
在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);
楼主可以参照一下,检查是哪个设置遗漏了。
配置问题,PA8复用功能有很多,你没打开作为MCO功能。 Kevin201707 发表于 2019-4-20 20:56
配置问题,PA8复用功能有很多,你没打开作为MCO功能。
应该怎样打开,MCO功能 ? 使用STM32CubeMX直接配置生成code 不要用软件仿真,软仿真的PORTA.8是IO,是PA8对应的输出寄存器位,而你要的MCO功能不是寄存器,无法仿真。
因此,如果要验证MCO,那么用实体板卡跑个程序就知道了。 toofree 发表于 2019-4-21 23:45
不要用软件仿真,软仿真的PORTA.8是IO,是PA8对应的输出寄存器位,而你要的MCO功能不是寄存器,无法仿真。
...
困惑了几天的问题,最终的结果是:软件没这个功能,臣妾做不到呀......唉,是我想多了。 大多数试验还是要硬件配合才能,仿真还有限制 五哥1 发表于 2019-4-22 18:19
大多数试验还是要硬件配合才能,仿真还有限制
感谢你。
页:
[1]
2