OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3328|回复: 1

STM32F401仿真4位数码管显示失败

[复制链接]

0

主题

0

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2020-7-4
在线时间
5 小时
发表于 2020-7-10 08:07:42 | 显示全部楼层 |阅读模式
1金钱
程序是从F107移植过来的,在107上可以正常使用,可到了F401却无法正常显示,这是为何?

4λ12òõêyÂë1ü
8¶ÎêyÂë1üóëó2¼tòy½Å¶Ôó|1ØÏμ

λѡ£oPD12-PD15

A------->PC0
B------->PC1
C------->PC2
D------->PC3
E------->PC4
F------->PC5
G------->PC6
DP------>PC7

0£oABCDEF
1:BC
2:ABDEG
3:ABCDG
4:BCFG
5:ACDFG
6:ACDEFG
7:ABC
8:ABCDEFG
9:ABCDFG

GPIO_PIN_0 ((uint16_t)0x0001)
èç£o0 -->  A|B|C|D|E|F = 0x64b
******************************/
#include "led.h"



int num[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//¶Ôó|ÏÔê¾0~9
int p=1000;
void DisPlayNum(int n)
{
    if (n < 9999)
    {
        int i = 0;
        for (i=0;i<4;i++)//&#214;e&#206;&#187;&#207;&#212;ê&#190;£&#172;′óμí&#206;&#187;&#214;á&#184;&#223;&#206;&#187;&#207;&#212;ê&#190;
        {
            GPIO_Write(GPIOC,0xFFFF);//&#207;&#212;ê&#190;&#195;&#191;ò&#187;&#206;&#187;
            GPIO_Write(GPIOA,0xF000);//PD12-15&#206;&#187;&#209;&#161;&#214;&#195;&#206;&#187;
//            switch (i)
//            {
//            case 0:
//                GPIO_Write(GPIOD,0xE000);//PD12??,?????
//                break;
//            case 1:
//                GPIO_Write(GPIOD,0xD000);//PD13??,?????
////                GPIO_Write(GPIOB,GPIO_Pin_SET);//???
//                break;
//            case 2:
//                GPIO_Write(GPIOD,0xB000);//PD14??,?????
//                break;
//            case 3:
//                GPIO_Write(GPIOD,0x7000);//PD15??,?????
//                break;
//            }
            p = n % 10;
            GPIO_Write(GPIOC, num[p]);//&#207;&#212;ê&#190;&#195;&#191;ò&#187;&#206;&#187;μ&#196;0~9

            n = n / 10;//òà′&#206;&#207;&#212;ê&#190;&#207;&#194;ò&#187;&#206;&#187;


            if (n==0)//×&#238;oóò&#187;&#206;&#187;&#207;&#212;ê&#190;íê£&#172;&#189;áê&#248;£¨′óμí&#206;&#187;&#214;á&#184;&#223;&#206;&#187;&#207;&#212;ê&#190;£&#169;
                break;
        }
    }
}

void LED_POSITION_Init(void)//&#206;&#187;&#209;&#161;1ü&#189;&#197;3&#245;ê&#188;&#187;ˉPA1-3
{
    GPIO_InitTypeDef  GPIO_InitStructure;

                //---------------------------------------------------------------
    /* ê1&#196;üLED&#182;&#212;ó|GPIOμ&#196;Clockê±&#214;ó */
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD , ENABLE);
        
    /* 3&#245;ê&#188;&#187;ˉLEDμ&#196;GPIO1ü&#189;&#197;£&#172;&#197;&#228;&#214;&#195;&#206;aí&#198;íìê&#228;3&#246; */                                  //éè&#214;&#195;&#182;&#203;&#191;ú
    GPIO_InitStructure.GPIO_Pin =GPIO_Pin_12 |GPIO_Pin_13 |GPIO_Pin_14 |GPIO_Pin_15 ;
                                                                                                                           //éè&#214;&#195;&#182;&#212;&#182;&#203;&#191;úμ&#196;&#196;£ê&#189;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //éè&#214;&#195;&#206;a í&#198;íì(Push-Pull)ê&#228;3&#246;
                                                                                                                           //
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                  //×&#238;′óê&#228;3&#246;&#203;ù&#182;è&#206;a50MHz

    GPIO_Init(GPIOD, &GPIO_InitStructure);                          //μ÷ó&#195;GPIO3&#245;ê&#188;&#187;ˉoˉêy

}

void LED_SEGMENT_Init(void)//&#182;&#206;&#209;&#161;1ü&#189;&#197;3&#245;ê&#188;&#187;ˉPC0-7
{
    GPIO_InitTypeDef  GPIO_InitStructure;

                //---------------------------------------------------------------
    /* ê1&#196;üLED&#182;&#212;ó|GPIOμ&#196;Clockê±&#214;ó */

                RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC , ENABLE);
        
    /* 3&#245;ê&#188;&#187;ˉLEDμ&#196;GPIO1ü&#189;&#197;£&#172;&#197;&#228;&#214;&#195;&#206;aí&#198;íìê&#228;3&#246; */                                  //éè&#214;&#195;&#182;&#203;&#191;ú
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 |GPIO_Pin_1 |GPIO_Pin_2 |GPIO_Pin_3 |GPIO_Pin_4 |GPIO_Pin_5 |GPIO_Pin_6 |GPIO_Pin_7 ;
                                                                                                                           //éè&#214;&#195;&#182;&#212;&#182;&#203;&#191;úμ&#196;&#196;£ê&#189;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                  //éè&#214;&#195;&#206;a í&#198;íì(Push-Pull)ê&#228;3&#246;
                                                                                                                           //
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                  //×&#238;′óê&#228;3&#246;&#203;ù&#182;è&#206;a50MHz

    GPIO_Init(GPIOD, &GPIO_InitStructure);                          //μ÷ó&#195;GPIO3&#245;ê&#188;&#187;ˉoˉêy

}


捕获啊AAA.JPG
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165475
金钱
165475
注册时间
2010-12-1
在线时间
2115 小时
发表于 2020-7-11 02:30:11 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-30 23:10

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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