[经验分享] 【GD32E231 DIY大赛】2,点亮数码管的一位

ddllxxrr   2019-5-3 10:11 楼主
我的项目是数字钟,我想先搭一个再说。
我这两天有时间,到电子配件处买了四个红色1寸LED,共阴极。
我的设计这样,用8050接阴极,8050基极用1K连接,另一端接单片机。
8位数码管用82欧电阻串接,另一端接单片机。

为了验证一下好用不,我只用了两个管脚PB3,PB4,PB3驱动三极管,PB4驱动8位管脚。

刚开始,我运行了一下不亮。我用万用表查了下才1.25伏左右。

怎么回事我查了下手册,输出可以上拉。我于是都改为上拉输出,试了下,数码管的一位亮了
IMG_20190503_092641.jpg


程序如下:

  1. #include "gd32e23x.h"
  2. #include "gd32e231c_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_GPIOB);
  17.     /* configure LED1 GPIO port */
  18.     gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_3);
  19.     gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_3);
  20.            gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_4);
  21.     gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_4);
  22.     /* reset LED1 GPIO pin */
  23.     gpio_bit_set(GPIOB,GPIO_PIN_3);

  24.     while(1){
  25.         /* turn on LED1 */
  26.         gpio_bit_set(GPIOB,GPIO_PIN_4);
  27.         delay_1ms(1000);
  28.         /* turn off LED1 */
  29.         gpio_bit_reset(GPIOB,GPIO_PIN_4);
  30.         delay_1ms(1000);
  31.     }
  32. }



连线有点麻烦,正考虑打个板来这。
http://shop34182318.taobao.com/ https://shop436095304.taobao.com/?spm=a230r.7195193.1997079397.37.69fe60dfT705yr

回复评论 (1)

谢谢分享!
点赞  2019-5-5 09:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复