OpenEdv-开源电子网

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

请求大神指点一下,f4点亮max7219LED.

[复制链接]

2

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2021-2-26
在线时间
5 小时
发表于 2021-5-7 10:05:10 | 显示全部楼层 |阅读模式
10金钱
本人想点亮一款MAX7219的led板子,在咱们这论坛上下载了一个f1的例子,按照自己需要修改配置spi,发现怎么也无法点亮,我用的是f4开发板,计划用spi3,pc10、11、12分别复用为clk、cs、din。麻烦各位大佬看一下,是什么地方有问题。main函数
#include "stm32f4xx.h"
#include "delay.h"

#define Max7219_pinCLK  PCout(10)
#define Max7219_pinCS   PCout(11)
#define Max7219_pinDIN  PCout(12)


void SPI3_Init(void)       
{
        SPI_InitTypeDef  SPI3_InitStructure;
        GPIO_InitTypeDef GPIO_InitStructure;
         
        //配置SPI1管脚
        //RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA, ENABLE);
        //RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1,ENABLE);

    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);//使能GPIOC时钟
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI3, ENABLE);//使能SPI3时钟

        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
    GPIO_Init(GPIOC,&GPIO_InitStructure);
       
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12;
    GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
    GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//上拉
    GPIO_Init(GPIOC,&GPIO_InitStructure);

    GPIO_PinAFConfig(GPIOC,GPIO_PinSource10,GPIO_AF_SPI3); //PB3复用为 SPI1
    GPIO_PinAFConfig(GPIOC,GPIO_PinSource12,GPIO_AF_SPI3); //PB3复用为 SPI1

        //这里只针对SPI口初始化
        RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3,ENABLE);//复位SPI1
        RCC_APB1PeriphResetCmd(RCC_APB1Periph_SPI3,DISABLE);//停止复位SPI1
         
        SPI3_InitStructure.SPI_Direction=SPI_Direction_2Lines_FullDuplex;
        SPI3_InitStructure.SPI_BaudRatePrescaler=SPI_BaudRatePrescaler_64;
        SPI3_InitStructure.SPI_DataSize=SPI_DataSize_8b;
        SPI3_InitStructure.SPI_Mode=SPI_Mode_Master;
        SPI3_InitStructure.SPI_FirstBit=SPI_FirstBit_MSB; //高位在先
        SPI3_InitStructure.SPI_CPOL = SPI_CPOL_High;                                       
        SPI3_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
        SPI3_InitStructure.SPI_NSS = SPI_NSS_Hard; // 使用硬件模式,PA4需要接高电平
        SPI3_InitStructure.SPI_CRCPolynomial = 7;
       
        SPI_I2S_DeInit(SPI3);
       
        SPI_Init(SPI3, &SPI3_InitStructure);
       
        SPI_Cmd(SPI3, ENABLE);   
}


//-------------------------------------------
//功能:向MAX7219写入数据
//入口参数:address、dat
//出口参数:无
//说明:
void Write_Max7219(u8 address,u8 dat)
{
                        GPIO_ResetBits(GPIOC, GPIO_Pin_11);       
      SPI_I2S_SendData(SPI3, address);  //写入地址,即数码管编号
            delay_us(10);
            SPI_I2S_SendData(SPI3, dat);            //写入数据,即数码管显示数字
            delay_us(10);
                        GPIO_SetBits(GPIOC, GPIO_Pin_11);
}

void Init_MAX7219(void)
{
Write_Max7219(0x09, 0xff);       //译码方式:BCD码
Write_Max7219(0x0a, 0x03);       //亮度
Write_Max7219(0x0b, 0x07);       //扫描界限;8个数码管显示
Write_Max7219(0x0c, 0x01);       //掉电模式:0,普通模式:1
Write_Max7219(0x0f, 0x00);       //显示测试:1;测试结束,正常显示:0
}

int main(void)
{
        delay_init();
        SPI3_Init();
        Init_MAX7219();
        Write_Max7219(0x01, 0x00);
        Write_Max7219(0x02, 0x01);
        Write_Max7219(0x03, 0x02);
        Write_Max7219(0x04, 0x03);
        Write_Max7219(0x05, 0x04);
        Write_Max7219(0x06, 0x05);
        Write_Max7219(0x07, 0x06);
        Write_Max7219(0x08, 0x07);
        while(1)
        {

        }
}





微信图片_20210507095804.jpg
微信图片_20210507095758.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2021-5-7
在线时间
2 小时
发表于 2021-5-7 11:11:25 | 显示全部楼层
emmm   你灯板是不是少了驱动卡,Max7219这个单片机没看到鸭,小心配置了个寂寞
回复

使用道具 举报

2

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2021-2-26
在线时间
5 小时
 楼主| 发表于 2021-5-7 14:10:29 | 显示全部楼层
卢胖胖 发表于 2021-5-7 11:11
emmm   你灯板是不是少了驱动卡,Max7219这个单片机没看到鸭,小心配置了个寂寞

max7219在这个led背面,有4个7219.
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2021-5-7
在线时间
2 小时
发表于 2021-5-7 14:25:54 | 显示全部楼层
imo 发表于 2021-5-7 14:10
max7219在这个led背面,有4个7219.

但是我看板子好像是4块一样的 7219不知道是不是级联 如果不级联引脚要用4组
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2021-5-7
在线时间
2 小时
发表于 2021-5-7 14:30:21 | 显示全部楼层
imo 发表于 2021-5-7 14:10
max7219在这个led背面,有4个7219.

还有F1的好像是和F4库函数有不同,建议直接用F4的配置,然后你把led的那些复制过来再试试。手里没板子,光看没看出来啥。。。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 00:11

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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