OpenEdv-开源电子网

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

菜鸟再问关于共阴数码管的问题

[复制链接]

83

主题

349

帖子

1

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2012-8-10
在线时间
13 小时
发表于 2012-10-10 12:19:45 | 显示全部楼层 |阅读模式

求解释
以前搞51的时候,假如显示显示一个‘3’  的话,直接P0=0x8;
这是51的部分程序:
void display(uchar shu)
{

 duan=1;
 P0=table[shu];
 duan=0;
 0=0xff;
 wei=1;
 0=0xfe;
 wei=0;
 delay(5); 
}
那倒了stm32怎么办呢,怎么操作其中八个口呢(我用的是PB0-7),如果像51那样赋值,估计不行吧(难道PB=0x00000008,没有这种操作方式啊
求大侠解释一下,最好给点代码,让小弟研究研究,谢谢大侠们了

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

使用道具 举报

83

主题

349

帖子

1

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2012-8-10
在线时间
13 小时
 楼主| 发表于 2012-10-10 12:25:06 | 显示全部楼层
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2196
金钱
2196
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-10-10 13:01:16 | 显示全部楼层
方法一:
转换数据,写到 BSRR
类似这样,不一定对
GPIOB->BSSR = table[shu] | ((u32)((u8)~table) << 16)
方法二:
直接写 BSRR,但是需要修改 table 数组的值,这样的计算不用占用运行时的时间
方法三:
内部实现跟方法一类似,但是可以在不需要直接修改源码的前提下,利用C++的特性自己定义一个 0,使 0 = table[shu] 的作用就是写 B0-7 的
https://github.com/roxma
回复 支持 反对

使用道具 举报

57

主题

431

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
883
金钱
883
注册时间
2011-12-25
在线时间
12 小时
发表于 2012-10-10 13:05:23 | 显示全部楼层
回复【楼主位】电子狼:
---------------------------------
直接ODR赋值就OK了。。想51那样。
很喜爱电子行业
回复 支持 反对

使用道具 举报

36

主题

1105

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
2196
金钱
2196
注册时间
2012-2-8
在线时间
35 小时
发表于 2012-10-10 13:17:37 | 显示全部楼层
写 ODR 在单个实验里是可以的,但是为了不影响高 8 位,不得不使用 读-修改-写 的方法,
但是 读-修改-写 的方法在有中断或者多线程的情况下是不安全,使用 BSRR 可以避免这个问题
https://github.com/roxma
回复 支持 反对

使用道具 举报

11

主题

31

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2012-9-24
在线时间
0 小时
发表于 2012-10-10 15:18:38 | 显示全部楼层
楼上的说的大致是直接操作寄存器,具体怎么操作的,网上一搜一大把的
是好东西,就要顶,不能看完了、下完了就跑了。。。没礼貌。。。
回复 支持 反对

使用道具 举报

83

主题

349

帖子

1

精华

高级会员

Rank: 4

积分
908
金钱
908
注册时间
2012-8-10
在线时间
13 小时
 楼主| 发表于 2012-10-10 17:56:06 | 显示全部楼层
回复【6楼】不在网吧:
-----------------------------
不会吧,我几乎没看到可以用的
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-28 06:36

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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