我的项目是数字钟,我想先搭一个再说。
我这两天有时间,到电子配件处买了四个红色1寸LED,共阴极。
我的设计这样,用8050接阴极,8050基极用1K连接,另一端接单片机。
8位数码管用82欧电阻串接,另一端接单片机。
为了验证一下好用不,我只用了两个管脚PB3,PB4,PB3驱动三极管,PB4驱动8位管脚。
刚开始,我运行了一下不亮。我用万用表查了下才1.25伏左右。
怎么回事我查了下手册,输出可以上拉。我于是都改为上拉输出,试了下,数码管的一位亮了
程序如下:
- #include "gd32e23x.h"
- #include "gd32e231c_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_GPIOB);
- /* configure LED1 GPIO port */
- gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_3);
- gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_3);
- gpio_mode_set(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_PULLUP, GPIO_PIN_4);
- gpio_output_options_set(GPIOB, GPIO_OTYPE_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_4);
- /* reset LED1 GPIO pin */
- gpio_bit_set(GPIOB,GPIO_PIN_3);
- while(1){
- /* turn on LED1 */
- gpio_bit_set(GPIOB,GPIO_PIN_4);
- delay_1ms(1000);
- /* turn off LED1 */
- gpio_bit_reset(GPIOB,GPIO_PIN_4);
- delay_1ms(1000);
- }
- }
连线有点麻烦,正考虑打个板来这。