OpenEdv-开源电子网

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

STM32F1 控制MAX7219点阵模块 无反应

[复制链接]

5

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2018-1-11
在线时间
7 小时
发表于 2018-5-15 21:47:10 | 显示全部楼层 |阅读模式
5金钱
     我在网上查到了一些用51单片机驱动MAX7219点阵屏模块的代码,然后我改成 ST32F1 战舰代码,,,,发现点阵屏一直是异常状态。。。。请问有没有大佬玩过这个模块,求指点!

异常现象

异常现象

接口

接口

点阵屏.zip

846.51 KB, 下载次数: 186

最佳答案

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

使用道具 举报

5

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2018-1-11
在线时间
7 小时
 楼主| 发表于 2018-5-15 21:47:11 | 显示全部楼层
已解决,附代码

点阵屏 - 单个成功.zip

136.22 KB, 下载次数: 377

回复

使用道具 举报

5

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2018-1-11
在线时间
7 小时
 楼主| 发表于 2018-5-15 21:48:05 | 显示全部楼层
代码也上传了,请大家看一下
回复

使用道具 举报

5

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2018-1-11
在线时间
7 小时
 楼主| 发表于 2018-5-15 21:50:23 | 显示全部楼层
#define Max7219_pinCLK  PBout(3)
#define Max7219_pinCS   PBout(10)
#define Max7219_pinDIN  PBout(11)
//这时CLK CS DIN  接口


void Dianzhen_Init(void)
{
  
        RCC->APB2ENR|=1<<3;      //使能PORTB时钟       
       
        GPIOB->CRL&=0XFFFF0FFF;
        GPIOB->CRL|=0X00003000;   //PB3
       
        GPIOB->CRH&=0XFFFF00FF;
        GPIOB->CRH|=0X00003300;//PB10  PB11  推挽输出
   
    GPIOB->ODR|=1<<3; //PB3   输出高        
    GPIOB->ODR|=1<<10; //PB10 输出高        
    GPIOB->ODR|=1<<11; //PB11 输出高  

        Delay_xms(50);
        Init_MAX7219();
       
}       

//--------------------------------------------
//功能:向MAX7219(U3)写入字节
//入口参数:DATA
//出口参数:无
//说明:
void Write_Max7219_byte(uchar DATA)         
{
            uchar i;   
                Max7219_pinCS=0;               
            for(i=8;i>=1;i--)
          {                  
            Max7219_pinCLK=0;
            Max7219_pinDIN=DATA&0x80;
            DATA=DATA<<1;
            Max7219_pinCLK=1;
           }                                 
}


//-------------------------------------------
//功能:向MAX7219写入数据
//入口参数:address、dat
//出口参数:无
//说明:
void Write_Max7219(uchar address,uchar dat)
{
     Max7219_pinCS=0;
         Write_Max7219_byte(address);           //写入地址,即数码管编号
     Write_Max7219_byte(dat);               //写入数据,即数码管显示数字
         Max7219_pinCS=1;                        
}

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

使用道具 举报

5

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
71
金钱
71
注册时间
2018-1-11
在线时间
7 小时
 楼主| 发表于 2018-5-16 01:03:22 | 显示全部楼层
void GPIO_Init(void)
{
  
        RCC->APB2ENR|=1<<3;      //使能PORTB时钟       
       
        GPIOB->CRL&=0XFFFF0FFF;
        GPIOB->CRL|=0X00003000;   //PB3
       
        GPIOB->CRH&=0XFFFF00FF;
        GPIOB->CRH|=0X00003300;//PB10  PB11  推挽输出
   
    GPIOB->ODR|=1<<3; //PB3   输出高        
    GPIOB->ODR|=1<<10; //PB10 输出高        
    GPIOB->ODR|=1<<11; //PB11 输出高  


       
}       


//--------------------------------------------  
//功能:向MAX7219写入字节  
//入口参数:DATA  
//出口参数:无  
//说明:  
void Write_Max7219_byte(unsigned char DATA)           
{  
        unsigned char i;      
        Max7219_pinCS=0;         
        for(i=8;i>=1;i--)  
          {        
            Max7219_pinCLK=0;  
            Max7219_pinDIN=DATA&0x80;  
            DATA=DATA<<1;  
            Max7219_pinCLK=1;  
           }                                   
}  


//-------------------------------------------
//功能:向MAX7219写入数据
//入口参数:address、dat
//出口参数:无
//说明:
void Write_Max7219(uchar address,uchar dat)
{
//     Max7219_pinCS=0;
       
         Write_Max7219_byte(address);           //写入地址,即数码管编号
     delay_us(10);  
         Write_Max7219_byte(dat);               //写入数据,即数码管显示数字
     delay_us(10);
       
//         Max7219_pinCS=1;                        
}

/*
#define DECODE_MODE  0x09   //译码控制寄存器
#define INTENSITY    0x0A   //亮度控制寄存器
#define SCAN_LIMIT   0x0B   //扫描界限寄存器
#define SHUT_DOWN    0x0C   //关断模式寄存器
#define DISPLAY_TEST 0x0F   //测试控制寄存器
*/
void Init_MAX7219(void)  
{  
       
//关断模式寄存器     开启普通工作模式
Write_Max7219(0x0C, 0x01);       //掉电模式:0;普通模式:1
       
//测试控制寄存器            选择工作模式
Write_Max7219(0x0F, 0x00);       //显示测试:1;测试结束,正常显示:0  

//译码控制寄存器     选择全译码模式
Write_Max7219(0x09, 0xFF);       //译码方式:BCD译码  

//扫描界限寄存器     8只LED全用
Write_Max7219(0x0B, 0x07);       //扫描界限;8个数码管显示  
               
//亮度控制寄存器     设置初始亮度
Write_Max7219(0x0A, 0x03);       //亮度  

}  
回复

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2018-12-20
在线时间
1 小时
发表于 2018-12-21 15:42:28 | 显示全部楼层
你好 我的也是这种情况 请问是什么问题? 我用的是STM32CubeMX
回复

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2019-3-22
在线时间
3 小时
发表于 2019-4-7 17:22:03 | 显示全部楼层
十分感谢楼主
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2019-7-26
在线时间
9 小时
发表于 2019-8-2 05:56:23 | 显示全部楼层
你好楼主请问你的点阵怎么实现级联的啊还有 max7219写数据看起来没用到啊
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2019-7-26
在线时间
9 小时
发表于 2019-8-2 06:01:04 | 显示全部楼层
这个级联的点阵写的哪里有问题吗各位大佬帮帮忙康康
并不能用

点阵屏级联.rar

569.67 KB, 下载次数: 85

回复

使用道具 举报

8

主题

32

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
243
金钱
243
注册时间
2019-12-16
在线时间
42 小时
发表于 2019-12-30 16:45:27 | 显示全部楼层
感觉刷新太慢了,放慢动作一样
回复

使用道具 举报

0

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2021-1-21
在线时间
33 小时
发表于 2021-1-21 17:54:50 | 显示全部楼层
wjl13580445117 发表于 2019-12-30 16:45
感觉刷新太慢了,放慢动作一样

解决了吗!这个代码好慢哦
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2021-7-6
在线时间
0 小时
发表于 2021-7-6 11:07:00 | 显示全部楼层
我话比谁都多 发表于 2018-5-15 21:48
代码也上传了,请大家看一下

有级联的程序吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 10:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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