OpenEdv-开源电子网

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

请问如何用32同时控制24个LED的不同亮灭?

[复制链接]

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-9-11
在线时间
0 小时
发表于 2014-10-3 12:57:04 | 显示全部楼层 |阅读模式
5金钱
如果是51的话可以P0=0xff之类的,32的话感觉一个I/0就得(初始化,配置,赋值)好几行,同时用20多个I/O口的话不是麻烦死了???新人求指教!非常感谢!!!

最佳答案

查看完整内容[请看2#楼]

直接上寄存器    代码会少很多
good morning !every body!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13138
金钱
13138
注册时间
2012-11-26
在线时间
3814 小时
发表于 2014-10-3 12:57:05 | 显示全部楼层
直接上寄存器   
代码会少很多
学无止境
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-9-11
在线时间
0 小时
 楼主| 发表于 2014-10-3 12:57:05 | 显示全部楼层
谢谢大家,我最后是这么做的:

void InitGPIO(GPIO_TypeDef* GPIOx)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOB,&GPIO_InitStructure); }


void WriteData(u8 data)
{
    GPIO_WriteBit(GPIOx, in1,(data & 0x80) >> 7 ); 
    GPIO_WriteBit(GPIOx, in2,(data & 0x40) >> 6 ); 
    GPIO_WriteBit(GPIOx, in3,(data & 0x20) >> 5 ); 
    GPIO_WriteBit(GPIOx, in4,(data & 0x10) >> 4 ); 
    GPIO_WriteBit(GPIOx, in5,(data & 0x08) >> 3 ) ; 
    GPIO_WriteBit(GPIOx, in6,(data & 0x04) >> 2 ); 
    GPIO_WriteBit(GPIOx, in7,(data & 0x02) >> 1 ); 
    GPIO_WriteBit(GPIOx, in8,data & 0x01);
good morning !every body!
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-9-11
在线时间
0 小时
 楼主| 发表于 2014-10-3 13:09:00 | 显示全部楼层
我是要用stm32控制LED做一个旋转时钟(POV),每转一度周期很短,所以不想代码太多
good morning !every body!
回复

使用道具 举报

4

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2014-9-11
在线时间
0 小时
 楼主| 发表于 2014-10-3 19:01:22 | 显示全部楼层
原子哥求帮助。。。
good morning !every body!
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-10-3 21:06:01 | 显示全部楼层
哪有纯用GPIO搞的……你这样那些LED点阵电视大屏要用多少单片机……从基本数字电路芯片想办法
回复

使用道具 举报

2

主题

184

帖子

0

精华

高级会员

Rank: 4

积分
701
金钱
701
注册时间
2014-8-17
在线时间
164 小时
发表于 2014-10-3 22:40:05 | 显示全部楼层
595、138之类的数字芯片,看看大街上那种点阵屏是怎么驱动的就知道了。
回复

使用道具 举报

26

主题

194

帖子

5

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1175
金钱
1175
注册时间
2011-8-20
在线时间
21 小时
发表于 2014-10-5 21:20:57 | 显示全部楼层
回复【2楼】黄色杀马特:
---------------------------------
楼主应该改变一种编程思想,转一度周期再短也不至于操作IO口时间都没有。
看我做的 http://www.openedv.com/posts/list/0/22900.htm
for( int i=0; i<(1.0/0); i++ ) { for( int j=0; j<365; j++) money ++; age ++; if( age > 30 ) ChangeJob( Boss ); } 脸上的痘痘提醒我?我还年轻?口袋的米米告诉我?我仍需努力
回复

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2014-10-6 10:33:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-30 15:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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