2870|2

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

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

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

最新回复

参考下边的工程,将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);     } } 复制代码   详情 回复 发表于 2019-4-23 18:51
点赞 关注(2)
 

回复
举报

2

帖子

0

TA的资源

一粒金砂(初级)

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

回复

9790

帖子

24

TA的资源

版主

板凳
 

参考下边的工程,将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. }
复制代码



此帖出自GD32 MCU论坛
 
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

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

查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

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