STM32F7 GPIOD分开控制

2019-07-14 18:30发布

GPIOD口的0-6用在译码器上输出单个脉冲循环 原理图上GPIO0空了 就用了GPIO1-6           u8 i,j;
                for(i=0;i<3;i++)       //译码器的片选
                {
                        
                        for(j=0;j<16;j++)   
                        {
                                GPIOD->ODR =2*i + 16*j;
                                delay_us(100);                  
                        }


GPIO9-15另外单独控制  如何写不受影响

试了下GPIOD->ODR=(GPIOD->ODR & 0xFE00) | (i + 16*j);  译码器有些管脚就无输出
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
TOPCB
1楼-- · 2019-07-15 03:43
楼主从你的代码分析,你操作的是P0-P15,但是你的P9-P15又是不变的。
jfuwre
2楼-- · 2019-07-15 06:00
寄存器操作,建议用原子操作的寄存器。。。那个更好用。。。。BSRR和BRR,当然了,F7叫法可能不一样,但是效果是一样的。。。。
zhouxk
3楼-- · 2019-07-15 06:01
 精彩回答 2  元偷偷看……
lxz0404
4楼-- · 2019-07-15 06:46
zhouxk 发表于 2018-8-18 07:04
本帖最后由 toofree 于 2018-3-15 11:46 编辑

怎么感觉你用两个号在问同一个问题呢

问题是一样的问题,人不是同一个人啦
60user126
5楼-- · 2019-07-15 09:17
本帖最后由 xmstudio 于 2018-3-15 17:03 编辑

STM32应该都有BSRR这个寄存器吧,低16位置1代表将对应IO口置1,高16位置1代表将对应的IO口置0,其他IO口不变
商量看能否
6楼-- · 2019-07-15 12:02
我也建议用原子操作的寄存器,那个要比其他的好用

一周热门 更多>