最近看用户手册的时候看到GPIO可以复用为EVENTOUT输出引脚,就很好奇EVENTOUT是做什么用的?而这个在网上的相关资料也很少,总结了一下:EVENTOUT可以通过__SEV指令,让内核输出一个高脉冲,延迟很小,脉宽是一个时钟宽度。比如说系统时钟是18Mz,那么这个脉冲宽度就是1/55ns,这个脉宽也基本满足不了我们日常的使用
那这个EVENTOUT又有什么作用呢?据野史记载,EVENTOUT多用于低功耗唤醒,以及同步
理论科普就到这里了,那么EVENTOUT需要怎么配置呢?快拿小本本记下来
RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_GPIOA, ENABLE);
GPIO_InitStruct(&GPIO_InitStructure);
GPIO_InitStructure.Pin = GPIO_PIN_0;;
GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AF_PP;
GPIO_InitStructure.GPIO_Alternate = GPIO_AF3_EVENTOUT;
GPIO_InitPeripheral(GPIOB, &GPIO_InitStructure);
__sev();
配置复用的时候要查看用户手册,对有这个复用功能的IO口进行配置,通过手册可以看到有很多GPIO有这个功能,这里我们选择的是PB0
|