OpenEdv-开源电子网

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

IO口驱动数码管,整体赋值有问题

[复制链接]

23

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-1-25
在线时间
83 小时
发表于 2019-12-2 16:04:16 | 显示全部楼层 |阅读模式
10金钱
1、io口直接驱动数码管
2、abcdefg分别连接到
        //abcd = pa.4.5.6.7
        //efg p = pc0.1.2.3

3、部分代码,用switch语句,负责显示0-9切换       
        目前的问题是,用的pa管教的4567,pc脚的0123,以下这种整体赋值的方式是否正确,我目前显示是不对,求指教
        switch(data_temp)
        {
                case 0:        //0xC0
                {
                        GPIOA->ODR&=0XFF0f; //abcd
                        GPIOA->ODR|=0X00C0;
                        GPIOC->ODR&=0XFFF0; //efg/dp
                        GPIOC->ODR|=0X0000;
                }
                break;
                case 1://0xF9
                {
                        GPIOA->ODR&=0XFF0f;  
                        GPIOA->ODR|=0X00F0;
                        GPIOC->ODR&=0XFFF0;
                        GPIOC->ODR|=0X0009;
                }break;

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

使用道具 举报

23

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-1-25
在线时间
83 小时
 楼主| 发表于 2019-12-2 16:30:05 | 显示全部楼层
void display_acc(u16 data)
{
        DPY1 = 0;DPY2 = 1;DPY3 = 1;DPY4 = 1;
        DPY5 = 1;DPY6 = 1;DPY7 = 1;DPY8 = 1;
        led_dispaly(data/1000);
        delay_ms(1);
        DPY1 = 1;DPY2 = 1;DPY3 = 1;DPY4 = 1;
        DPY5 = 1;DPY6 = 1;DPY7 = 1;DPY8 = 1;
        //////////////////////////////////////////       
       
        DPY1 = 1;DPY2 = 0;DPY3 = 1;DPY4 = 1;
        led_dispaly(data/100%10);
        delay_ms(1);
        DPY1 = 1;DPY2 = 1;DPY3 = 1;DPY4 = 1;
        DPY5 = 1;DPY6 = 1;DPY7 = 1;DPY8 = 1;
        ////////////////////////////////////////


这样显示程序也有问题,我的 想法是1位1位的显示,1位在显示,其余的都是关闭,快速显示,则8位都能看到
但是实际显示起来有问题
回复

使用道具 举报

6

主题

1127

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1656
金钱
1656
注册时间
2019-8-15
在线时间
102 小时
发表于 2019-12-2 18:26:50 | 显示全部楼层
帮顶                                          
成功没有捷径
回复

使用道具 举报

23

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-1-25
在线时间
83 小时
 楼主| 发表于 2019-12-3 16:04:58 | 显示全部楼层
我现在数字能够正常显示,但是,用定时器实现的,一直卡在定时器中断了
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手入门

积分
14
金钱
14
注册时间
2019-12-3
在线时间
2 小时
发表于 2019-12-3 16:44:32 | 显示全部楼层
定时器中断时间多少啊
回复

使用道具 举报

23

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-1-25
在线时间
83 小时
 楼主| 发表于 2019-12-3 19:40:31 | 显示全部楼层
定时器中断10ms,现在一直卡死
在delay_ms()中这一步
temp=SysTick->CTRL;
回复

使用道具 举报

23

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-1-25
在线时间
83 小时
 楼主| 发表于 2019-12-4 20:13:37 | 显示全部楼层
现在基本搞定了,定时器两个有冲突,我现在使用tim1定时器扫描数码管,其他定时器干别的工作
下次一定不整这种扫描应用的了,74hc595多好,当时手里没片子,想简单用一下,
回复

使用道具 举报

23

主题

130

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
314
金钱
314
注册时间
2015-1-25
在线时间
83 小时
 楼主| 发表于 2019-12-4 20:14:49 | 显示全部楼层
现在基本搞定了,利用tim1和tim3/4不同时钟,基本上可以实现了,下次一定用74hc595
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-23 20:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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