欢迎分享,转载请注明来源:内存溢出
一般来说,在使用STM32进行IO *** 作时,先写输出,再把IO方向设置为输出,是因为在输入模式下,在没有外部信号输入时,引脚上可能会有一个随机的电平,而当IO方向设置为输出后,这个随机电平可能会引起引脚上的电流变化,导致系统出现不可预料的错误。因此,在设置引脚IO方向之前,最好先将引脚设置为输出,以避免出现意外情况。您好,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 = starti <endi++ ) { if( value &0x01 ) { GPIOx->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。 在其它一些需要使用并行输出,如并口液晶、NandFlash等应该的时候,也可以考虑使用方法B。
赞
(0)
打赏
微信扫一扫
支付宝扫一扫
怎样设置office背景颜色
上一篇
2023-04-09
电信版苹果4如何收发彩信
下一篇
2023-04-09
评论列表(0条)