STM32中怎样读取GPIOA口的高8位或低8位数据?怎样向GPIOA的高8位或低8位1次性写8位数
STM32中怎样读取GPIOA口的高8位或低8位数据?怎样向GPIOA的高8位或低8位1次性写8位数据?...
STM32中怎样读取GPIOA口的高8位或低8位数据?怎样向GPIOA的高8位或低8位1次性写8位数据?
展开
1个回答
展开全部
您好,STM32的GPIO口的功能是非常之强大的。关于GPIO输出的赋值可使用两种方法,方法A:逐一配置法,优点是不会影响到其它的GPIO口,缺点是操作比较繁琐。方法B:ODR设置法,优点是操作轻松,缺点是需要硬件电路作配合。下面我们详细描写这两种方法:方法A:所谓逐一配置法, 就是对需要输出数据的IO口线逐一配置,需要输出为1的IO口使用GPIOx-BSS = 1 N; (N表示第N根线,如PA9, N值为9)需要输出为0的IO口使用GPIOx-BRSS = 1 N;使用以下语句可以完成//to do 先将输出口配置为输出功能for( i = start; i end; i++ ){ if( value BSS = 1 i; } else { GPIOx-BRSS = 1 i; }}方法B: ODR配置法,可以直接使用 GPIO-ODR = value N;给对应的IO口进行输出操作。但是此时在硬件上要保证:1 该功能口(如GPIOA)上的其余的IO口不作为普通的IO输出口使用(由于是键盘扫描,当列输出的时候,行应当是输入;同理,当列输入时,行应当是输出)2 行列以外的GPIO口,要末是普通的IO输入口,要末是功能口。功能口就是UART、USB、PWM、ADC等,对GPIO的ODR进行操作时,不会对功能口产生影响。以上第2条是对第1条的详细解释。总结:如果在硬件上可以满足方法B的利用条件,建议优先采取方法B。在其它1些需要使用并行输出,如并口液晶、NandFlash等应当的时候,也能够斟酌使用方法B。 查看更多答案>>
记得采纳啊
记得采纳啊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询