请问STM32F7 GPIO同时控制程序0-8无输出是什么原因?

2019-07-14 18:34发布

本帖最后由 Rareyee 于 2018-3-14 11:12 编辑

GPIOD->ODR 0-8和9-15管脚同时控制
下面程序的时候0-8有波形 但写GPIOD->ODR|=2*i + 16*j; 9-15有波形 0-8就无输出了

for(i=0;i<(Capture_Line/16);i++)//12个使能  (Capture_Line/16) 行片选
                {
                        
                        for(j=0;j<16;j++)  //16*(Capture_Line/16) =192行   16个地址      
                        {
                                GPIOD->ODR =2*i + 16*j;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
cknz
2019-07-15 20:00
这个问题,有两方面
首先:建议你用一个uint32_t xx = 2*i + 16*j;作为一个缓存,因为我不知道你的i是什么类型,如果是8位,我没看到有类型的强制转换呀...那会爆了呀.然后也可以通过xx看看你计算的值是什么,对比一下结果.查看无误了,再恢复成你现在的形式也型.
其次:你可以直接调试状态下,控制ODR寄存器,看看硬件输出是否正常...
最后.......如无意外......就可以下班了

一周热门 更多>