对于开漏电路,应是Ug>Us,N-MOS管才导通,那么输出的是高电压电流啊?那开漏模式下为什么不能输出高电平啊?不能理解,有没有哪位人能给我解释一下啊,谢谢。
对于stm32GPIO开漏模式下的不理解
对于开漏电路,应是Ug>Us,N-MOS管才导通,那么输出的是高电压电流啊?那开漏模式下为什么不能输出高电平啊?不能理解,有没有哪位人能给我解释一下啊,谢谢。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
关注 - 这篇文章讲的很详细,请看:stm32学习笔记-3GPIO通用输入输出口
- 以下回答由chatgpt基于相关博客总结生成:
答案:
在STM32的GPIO开漏模式下,其实是存在输出高电平的能力的,只是需要对端口模式寄存器进行正确的配置。以下是具体的解决方案:
- 首先,在STM32的GPIO传统输出模式下,输出高电平的方式是通过将对应的端口置位为1来实现的,在开漏模式下也是一样的,只是需要将端口设置为输出模式并且开启开漏输出模式。具体的代码如下所示:
// 配置端口为开漏模式 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_OD; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_Init(GPIOA, &GPIO_InitStructure); // 输出高电平 GPIO_SetBits(GPIOA, GPIO_Pin_0);
- 在上面的代码中,我们通过将GPIO_TypeDef结构体中的GPIO_Mode成员设置为GPIO_Mode_Out_OD,来开启开漏输出模式。同时,我们还需要将GPIO_Pin成员设置为需要输出高电平的端口。最后通过调用GPIO_SetBits函数将需要输出高电平的端口置位就可以了。
希望这段代码能够帮助你解决问题!
解决 无用评论 打赏 举报
悬赏问题
- ¥15 安装wampserver,图标绿色,但是无法进入软件
- ¥15 C++ MFC 标准库 加密解密解惑
- ¥15 两条数据合并成一条数据
- ¥15 Ubuntu虚拟机设置
- ¥15 comsol三维模型中磁场为什么没有“速度(洛伦兹项)”这一选项
- ¥15 electron 如何实现自定义安装界面
- ¥15 关于#linux#的问题:子进程C运行“ls –l”命令,且显示“C运行ls-l命令”(语言-c语言)
- ¥15 vs code配置c语言遇到这个问题
- ¥15 vscode调试编译找不到gcc,只有cl,但是检查cmd是对的,控制面板的路径也更改了
- ¥20 access中怎么分割分别获取一下图中的值