当前位置: 代码迷 >> 单片机 >> STM32 多IO口 与此同时配置
  详细解决方案

STM32 多IO口 与此同时配置

热度:86   发布时间:2016-04-28 15:38:51.0
STM32 多IO口 同时配置
IO口单独配置可如下:
#define A1 PCout(6)
#define B1 PCout(7)

RCC->APB2ENR|=1<<4;              //I/O port C enable clock 
GPIOC->CRL&=0X00FFFFFF;  //C6&7 init
GPIOC->CRL|=0X33000000;  //set C6&7 push-pull ouput 50MHZ mode 
GPIOC->ODR=1<<6;          //set C6&7 output high
GPIOC->ODR=1<<7;
请问怎么同时配置PB从0到7口?谢谢!
------解决方案--------------------
GPIOB->ODR = 0x00FF;
------解决方案--------------------
为什么不用厂商提供的接口?

非要自己直接去摸寄存器?
------解决方案--------------------
引用:
新手不会,还没学习到库函数什么的,所以只能从底层做起,我想这样也更容易理解ARM.


还是先理解C语言吧。看到1<<6这种东西就应该知道0100 0000那么多空着的0都是其它引脚。你想把哪个置1就给那个位写1。数字准备好了之后一次赋值就行了。不只是STM32,换个片子只要是这么写的都这么用。
------解决方案--------------------
引用:
新手不会,还没学习到库函数什么的,所以只能从底层做起,我想这样也更容易理解ARM.


我现在倒觉得,更是新手,更应该先从库入手

这样可以先把底层复杂性给掩盖住。

先把活干完,如果真有时间,真想去纠结这个。再慢慢去弄


------解决方案--------------------
引用:
新手不会,还没学习到库函数什么的,所以只能从底层做起,我想这样也更容易理解ARM.

说老实话,寄存器操作不见得就更容易理解ARM。STM32寄存器这么多,一个影响开发效率,再者后期维护很麻烦,赞同版主,直接库函数用起,库函数内部也是对寄存器的操作,感兴趣直接进去看就好了。