本帖最后由 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;
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
赋值 但需要和GPIO9-15的口不影响
GPIOD->ODR=(GPIOD->ODR & 0xFF00) | (2*i + 16*j);
首先:建议你用一个uint32_t xx = 2*i + 16*j;作为一个缓存,因为我不知道你的i是什么类型,如果是8位,我没看到有类型的强制转换呀...那会爆了呀.然后也可以通过xx看看你计算的值是什么,对比一下结果.查看无误了,再恢复成你现在的形式也型.
其次:你可以直接调试状态下,控制ODR寄存器,看看硬件输出是否正常...
最后.......如无意外......就可以下班了
一周热门 更多>