GPIO EVENTOUT测试
最近看用户手册的时候看到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
我使用的是N32G031,系统时钟48MHz,所以输出脉冲宽度应该是1/48Mhz ≈ 20ns(悄咪咪说一句,这么窄的脉冲确定不会被滤波器滤掉)
通过逻辑分析仪抓取波形,这里逻辑分析仪的采样频率要大于系统时钟,不然抓到的波形不准确,这里我们选择50MHz,可以看到脉宽正好是20ns,Perfect
页:
[1]