2040|2

3

帖子

0

资源

一粒金砂(初级)

GD32F350有没有开漏模式 [复制链接]

捣鼓了很长时间, 开漏模式一直没有弄好,不知道怎么回事。STM32系列一点问题都没有的。
此帖出自GD32 MCU论坛

回复

3

帖子

0

资源

一粒金砂(初级)

有没有遇到同样问题的?   当输出为高电平时,开漏结构的MOS管应该是完全不导通的,输出电压是跟随的上拉电压。

回复

1万

帖子

21

资源

版主


参考下边的工程,将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
  1. #include "gd32e230.h"
  2. #include "gd32e230c_start.h"
  3. #include "systick.h"
  4. #include <stdio.h>

  5. /*!
  6.     \brief      main function
  7.     \param[in]  none
  8.     \param[out] none
  9.     \retval     none
  10. */
  11. int main(void)
  12. {
  13.     systick_config();
  14.    
  15.     /* enable the LED1 GPIO clock */
  16.     rcu_periph_clock_enable(RCU_GPIOA);
  17.     /* configure LED2 GPIO port */
  18.     gpio_mode_set(GPIOA, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO_PIN_8);
  19.     gpio_output_options_set(GPIOA, GPIO_OTYPE_OD, GPIO_OSPEED_50MHZ, GPIO_PIN_8);
  20.     /* reset LED2 GPIO pin */
  21.     gpio_bit_reset(GPIOA,GPIO_PIN_8);

  22.     while(1){
  23.         delay_1ms(1000);
  24.         gpio_bit_set(GPIOA,GPIO_PIN_8);
  25.         delay_1ms(1000);
  26.         gpio_bit_reset(GPIOA,GPIO_PIN_8);
  27.         delay_1ms(1000);
  28.     }
  29. }
复制代码



个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复
您需要登录后才可以回帖 登录 | 注册

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
    关闭
    站长推荐上一条 1/10 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表