[STM32H7] STM32H743ZIT6使用GPIO输出翻转电平如何达到4Mhz?

[复制链接]
bestwell 发表于 2023-6-16 22:11 | 显示全部楼层
若使用18M或9M波特率,需要选用50M的GPIO的引脚速度。
Undshing 发表于 2023-6-16 22:23 | 显示全部楼层
寄存器操作io比hal库效率高多少啊?
AloneKaven 发表于 2023-6-17 23:24 | 显示全部楼层
是不是没有配置高速模式啊
Jacquetry 发表于 2023-6-18 22:30 | 显示全部楼层
是不是没配置gpio的速度啊?
mnynt121 发表于 2023-6-19 10:52 | 显示全部楼层
I/O口驱动电路的速度,是用来选择不同的输出驱动模块,达到最佳的噪声控制和降低功耗的目的。
mattlincoln 发表于 2023-6-19 11:07 | 显示全部楼层
如何使用GPIO高速输出模式来实现较高的翻转频率。
pentruman 发表于 2023-6-19 12:39 | 显示全部楼层
在STM32的代码中,需要初始化相应的GPIO口,并设置为输出模式。然后可以使用定时器或者循环延时来控制翻转频率。
jackcat 发表于 2023-6-19 14:28 | 显示全部楼层
当STM32的GPIO端口设置为输出模式时,有三种速度可以选择:2MHz、10MHz和50MHz
Pretext 发表于 2023-6-19 19:21 | 显示全部楼层
你的定时器实现的是4Mhz?
朝生 发表于 2023-6-19 19:22 | 显示全部楼层
我感觉想要达到4MHz,你可以直接在主函数的while循环让引脚不停的翻转,然后看看能达到多少频率。
芯路例程 发表于 2023-6-19 19:23 | 显示全部楼层
我觉得保险起见,还是用PWM输出比较好,定时器+GPIO容易有误差。
Henryko 发表于 2023-6-19 21:32 | 显示全部楼层
中断的方法就太频繁了,其他任务就没法执行
sdlls 发表于 2023-6-21 13:17 | 显示全部楼层
c
void GPIO_Init(void) {
    GPIO_InitTypeDef GPIO_InitStruct = {0};
    GPIO_InitStruct.Pin = GPIO_PIN_0;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; //设置为推挽输出模式
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; //选择高速输出模式
    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
    HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_RESET); //初始化输出低电平
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
快速回复 在线客服 返回列表 返回顶部