OpenEdv-开源电子网

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

数码管显示

[复制链接]

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
发表于 2013-5-7 19:02:23 | 显示全部楼层 |阅读模式
            
 





 

 

原子哥,我用 A的低八位引脚节数码管的段引脚,用PA的11,12引脚控制控制高两位数码管的位显示,第三个图中的函数就是写这个数码管的对应函数,第二张图是主函数,第一个图是对应的数码管电路。现在的情况是程序开始后,第一次第一位显示的数字正常,当显示到下一位时前一位正常熄灭,但此时显示的数码管上只有一个c 脚对应的led灯亮,接着又显示到第一位,这时第一位也只有一个c 脚对应的led灯亮,以后两位数码管就这样交替地亮着。看了好久总是搞不清错误出在哪里。希望原子哥百忙之中给分析分析。
山登绝顶我为峰!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

490

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1229
金钱
1229
注册时间
2012-8-4
在线时间
248 小时
发表于 2013-5-7 20:35:16 | 显示全部楼层
stm的gpio是16位呀  不是51啦
你开始赋值给PA底八位  到你赋值高八位时你没处理底八位  就搞乱了底八位啦
nrf51822蓝牙4.0手环开发板: 淘宝小店
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-5-7 20:49:28 | 显示全部楼层
回复【2楼】muniao:
---------------------------------
      我只对高八位用BSRR寄存器进行逐位的操作,只改动了高位的状态,怎么会影响低位的状态?
    难道stm32就不能够对gpio口分多次进行赋值?
    原子哥。。。。
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

14

主题

490

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1229
金钱
1229
注册时间
2012-8-4
在线时间
248 小时
发表于 2013-5-7 21:22:03 | 显示全部楼层
回复【3楼】田晓生:
---------------------------------
GPIOA->BSRR=oxff<<8;
GPIOA->BSRR=shu;  //这行你已经改变高八位了
nrf51822蓝牙4.0手环开发板: 淘宝小店
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-5-7 21:45:51 | 显示全部楼层
回复【4楼】muniao:
---------------------------------
     我现在把打开关闭两位数码管的引脚定义为PB的12,13引脚,两位数码管依次正常点亮,但如果让两个数码管显示的数不同,则数码管在第一次显示的一位正常显示一次后,两个数码管就都依次显示成了一样的乱码。这是为什么呢?
    个人猜测在第一次把shu的值给PA低八位后,如果第二次再重新给低八位一个不同的数在另一个数码管上显示时,低八位的值就乱了,如果第二次重新给低八位的shu的值没变,则低八位的值可能根本就没变化,所以才能正常显示。
    但是,到底是什么原因啊,求解。。。。。
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

14

主题

490

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1229
金钱
1229
注册时间
2012-8-4
在线时间
248 小时
发表于 2013-5-7 22:00:32 | 显示全部楼层
可能你程序问题吧  试试这样的结构  具体自己修改
pb12.13=1;
while

   for(一秒)
       {
             pb12=0
             pa=num1;
             pb12=1;

             pb13=0
             pa=num2;
             pb13=1;
        }
        改变num1.num2
nrf51822蓝牙4.0手环开发板: 淘宝小店
回复 支持 反对

使用道具 举报

0

主题

21

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2013-2-22
在线时间
0 小时
发表于 2013-5-8 12:06:55 | 显示全部楼层
BSRR高16位写1口置0,写0无影响
低高16位写1口置1,写0无影响
上电是全0
你写一个数木有问题,再写下个不同的数的时候,相当于第二个数与第一个数或了一下再显示的,
(因为你直接把数赋给低16中的低8了,如果对应位是0,没关系,如果是1,写第二个数的时候,如果想写0,需要对高16位里的位进行操作,或者对BRR进行操作)
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-5-8 12:43:31 | 显示全部楼层
回复【7楼】wahahaheihei:
---------------------------------------------------------
     嗯,豁然开朗!
   之前我是把BRSS寄存器默认成PA口寄存器了,还以为给它什么数据,对应引脚就能输出对应的状态。
    多谢提醒!!!
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

28

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-5-13
在线时间
0 小时
发表于 2013-7-27 16:33:16 | 显示全部楼层
回复【楼主位】田晓生:
---------------------------------
请问楼主的P10-P13接的什么,是直接接的STM32吗?数码管的亮度够不够?
人类是地球的,但地球不是人类的
回复 支持 反对

使用道具 举报

11

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
126
金钱
126
注册时间
2013-4-22
在线时间
0 小时
 楼主| 发表于 2013-7-27 16:55:40 | 显示全部楼层
回复【9楼】二月三十:
--------------------------
直接接的是stm32,因为是以三极管作为驱动,驱动数码管,所以亮度足够了。
山登绝顶我为峰!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-16 10:50

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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