发 帖  
原厂入驻New
发烧友10周年庆典,全网超值优惠来袭!千元现金券,下单抽奖赶紧参与》》
[问答] 求大佬帮我看看程序,为何烧录进去数码管都不理我,然后我设置为低电平的io口电平竟然有3.5v
466 GPIO STM32 数码管
分享
我只开了两个位选,感觉应该是程序哪里出了问题,求大佬解答
#include "STM32f10x_gpio.h"
#include "stm32f10x.h"
#include "SMG.h"
#include "SystickDelay.h"
void lcd_init(void)
{
                GPIO_InitTypeDef GPIO_InitStruct;
                RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOC,ENABLE);
                GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
                GPIO_InitStruct.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5;
                GPIO_Init(GPIOC, &GPIO_InitStruct);
                GPIO_ResetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5);
        


          GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_InitStruct.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8;
                GPIO_Init(GPIOC, &GPIO_InitStruct);
          GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8);

          RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOB,ENABLE);
                GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
          GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
                GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
                GPIO_Init(GPIOB, &GPIO_InitStruct);
                GPIO_SetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);


}


void Display(int n)
{
        IF (n<99)
        {
         int i;
           for (i=0;i<2;i++)
            {
                    switch(i)
                                {
                                        case 0:
                                                GPIO_ResetBits(GPIOC,GPIO_Pin_5);
                                          break;
                                        case 1:
                                                GPIO_ResetBits(GPIOC,GPIO_Pin_4);
                                          break;
                                }
                                switch(n%10)
                                {
                                        case 0:
                                                GPIO_ResetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
                                          GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8);
                                          break;
                                        case 1:
                                                GPIO_ResetBits(GPIOB,GPIO_Pin_13|GPIO_Pin_14);
                                          break;
                                        case 2:
                                                GPIO_ResetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_15);
                                          GPIO_ResetBits(GPIOC,GPIO_Pin_7|GPIO_Pin_8);
                                          break;
                                        case 3:
                                                GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8);
                                          GPIO_ResetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_15);
                                          break;
                                        case 4:
                                                GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7);
                                          GPIO_ResetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_13);
                                          break;
                                        case 5:
                                                GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7);
                                                GPIO_ResetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_15);
                                          break;
                                        case 6:
                                                GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7);
                                                GPIO_ResetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
                                          break;
                                        case 7:
                                          GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8);
                                          break;
                                        case 8:
                                                GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8);
                                          GPIO_ResetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
                                          break;
                                        case 9:
                                                GPIO_ResetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8);
                                          GPIO_ResetBits(GPIOB,GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_15);
                                          break;
                                }
                                n=n/10;
                                delay_ms(10);
                                if(n==0)
                                        break;
                        }
                }
        }
        int main(void)
        {
                int count;
                int timecheck;
                lcd_init();
                count=0;
                timecheck=0;
                while(1)
                {
                        Display(count);
                        timecheck++;
                        delay_ms(20);
                        if (timecheck>100)
                        {
                                timecheck=0;
                                count++;
                        }
                }
        }
        

0

数码管图

数码管图
已退回10积分
2019-3-14 19:17:38   评论 分享淘帖 邀请回答

相关问题

1个回答
把数码管的VCC5改成3.3伏试试
2019-3-15 10:15:37 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

我要提问
课程
    关闭

    站长推荐 上一条 /10 下一条

    快速回复 返回顶部 返回列表