打印

GD32F350有没有开漏模式

[复制链接]
473|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
classroom|  楼主 | 2021-2-7 16:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
捣鼓了很长时间, 开漏模式一直没有弄好,不知道怎么回事。STM32系列一点问题都没有的。

使用特权

评论回复
沙发
laocuo1142| | 2021-2-7 16:22 | 只看该作者
有没有遇到同样问题的?   当输出为高电平时,开漏结构的MOS管应该是完全不导通的,输出电压是跟随的上拉电压。

使用特权

评论回复
板凳
flycamelaaa| | 2021-2-7 16:22 | 只看该作者
参考下边的工程,将GPIO_OTYPE_PP/*!< push pull mode */改成GPIO_OTYPE_OD/*!< open drain mode */
测试在代码执行完gpio_bit_set(GPIOA,GPIO_PIN_8);时LED不亮,即没有推挽输出为高电平。
测试PA8的电平非0,非3.3V,在代码执行完gpio_bit_reset(GPIOA,GPIO_PIN_8);后PA8为0V(或接近0V),输出低电平成功。
证明为开漏输出。
GD32E230_Demo_Suites_V1.0.1\GD32E230C_START_Demo_Suites\Projects\01_GPIO_Runing_Led
#include "gd32e230.h"
#include "gd32e230c_start.h"
#include "systick.h"
#include <stdio.h>

/*!
    \brief      main function
    \param[in]  none
    \param[out] none
    \retval     none
*/
int main(void)
{
    systick_config();
   
    /* enable the LED1 GPIO clock */
    rcu_periph_clock_enable(RCU_GPIOA);
    /* configure LED2 GPIO port */
    gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_8);
    gpio_output_options_set(GPIOA, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_8);
    /* reset LED2 GPIO pin */
    gpio_bit_reset(GPIOA,GPIO_PIN_8);

    while(1){
        delay_1ms(1000);
        gpio_bit_set(GPIOA,GPIO_PIN_8);
        delay_1ms(1000);
        gpio_bit_reset(GPIOA,GPIO_PIN_8);
        delay_1ms(1000);
    }
}
复制代码

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

448

主题

2495

帖子

1

粉丝