OpenEdv-开源电子网

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

stm32硬件SPI驱动MAX7219数码管有疑问,求高手指导!!!!!!

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-4-14
在线时间
5 小时
发表于 2018-5-9 20:22:19 | 显示全部楼层 |阅读模式
void RCC_Configuration(void);
void GPIO_Configration(void);
void SPI_Configuration(void);
u8 Write_Max7219_byte(u8 data);
void Write_Max7219_data(u8 add,u8 data);
void init_MAX7219(void);

int main(void)
{
        RCC_Configuration();
        GPIO_Configration();
        SPI_Configuration();
        init_MAX7219();
        while(1)
        {
                Write_Max7219_data(1,1);
                Write_Max7219_data(2,2);
                Write_Max7219_data(3,3);
        }
}

void RCC_Configuration(void)
{
        SystemInit();
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);       
}

void GPIO_Configration(void)
{
        GPIO_InitTypeDef GPIO_Initstructure;
       
        //êy¾YDinA7 ê±ÖóClkA5  
        GPIO_Initstructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
        GPIO_Initstructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Initstructure.GPIO_Mode=GPIO_Mode_AF_PP;
        GPIO_Init(GPIOA,&GPIO_Initstructure);
       
        //ƬѡCEA3  êy¾YÖ¸áîDC£oPA3 ¸′λRSTA2
        GPIO_Initstructure.GPIO_Pin=GPIO_Pin_3;
        GPIO_Initstructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Initstructure.GPIO_Mode=GPIO_Mode_Out_PP;
        GPIO_Init(GPIOA,&GPIO_Initstructure);
}

void SPI_Configuration(void)
{
        SPI_InitTypeDef SPI_InitStructure;
       
        SPI_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;
        SPI_InitStructure.SPI_Mode=SPI_Mode_Master;
        SPI_InitStructure.SPI_DataSize=SPI_DataSize_8b;
        SPI_InitStructure.SPI_CPOL=SPI_CPOL_Low;
        SPI_InitStructure.SPI_CPHA=SPI_CPHA_1Edge;
        SPI_InitStructure.SPI_NSS=SPI_NSS_Soft;
        SPI_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_32;
        SPI_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB;
        SPI_InitStructure.SPI_CRCPolynomial=7;
        SPI_Init(SPI1,&SPI_InitStructure);
       
        SPI_Cmd(SPI1,ENABLE);
}

u8 Write_Max7219_byte(u8 data)
{
        u8 temp;
        while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE)==RESET);
        SPI_I2S_SendData(SPI1,data);
        while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_RXNE)==RESET);
        temp=SPI_I2S_ReceiveData(SPI1);
        return temp;
}

void Write_Max7219_data(u8 add,u8 data)
{
        GPIO_ResetBits(GPIOA,GPIO_Pin_3);
        Write_Max7219_byte(add);
        Write_Max7219_byte(data);
        GPIO_SetBits(GPIOA,GPIO_Pin_3);
}

void init_MAX7219(void)
{
        Write_Max7219_data(0x09,0xff);
        Write_Max7219_data(0x0A,0x08);
        Write_Max7219_data(0x0B,0x02);
        Write_Max7219_data(0x0c,0x01);
        Write_Max7219_data(0x0f,0x01);
}

程序如上,为什么就是数码管不显示!!!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-4-14
在线时间
5 小时
 楼主| 发表于 2018-5-9 21:07:12 | 显示全部楼层
怎么久没人回复吗 好绝望 哈哈
回复 支持 反对

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7464
金钱
7464
注册时间
2015-1-15
在线时间
1368 小时
发表于 2018-5-9 23:25:05 来自手机 | 显示全部楼层
又没硬件平台调试,自己动手调试找问题
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2018-4-14
在线时间
5 小时
 楼主| 发表于 2018-5-10 00:36:41 来自手机 | 显示全部楼层
yklstudent 发表于 2018-5-9 23:25
又没硬件平台调试,自己动手调试找问题

调了好久 找不到出错原因
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-8 04:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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