GPIO registro de modo de puerto (GPIOx_MODER) (x = A..I)

#define HDC_SDA_IN () {GPIOC-> búsquedas, & = ~ (3 << (9 * 2)); GPIOC-> búsquedas, | = 0 << 9 * 2;} // modo de entrada PC9  

#define HDC_SDA_OUT () {GPIOC-> búsquedas, & = ~ (3 << (9 * 2)); GPIOC-> búsquedas, | = 1 << 9 * 2;} // PC9 输出 模式

Por manual de referencia, ver registros GPIO, como se muestra a continuación:

 

 O funcionamiento en modo de explicación:

HDC_SDA_IN ():

          GPIOC-> búsquedas, & = ~ (3 << (9 * 2)); // 3 se representa como binario 11, la izquierda 2 11 * 9 = 18 (fabricado por 2y: bits de configuración determinar el puerto 9 2y + 1, es decir, los bits 19, 18), la inversa a la GPIOC-> búsquedas,; este es tal GPIOC-> búsquedas, de 19, el registro de 18 bits se borra.

          GPIOC-> búsquedas, | = 0 << 9 * 2; // 0 dejó 2 9 * = 18, es decir, conjunto de bits de configuración 18/19 a 0; el puerto 9 configurado para implementar la operación de modo de entrada

HDC_SDA_OUT ():

          GPIOC-> búsquedas, & = ~ (3 << (9 * 2)); // 3 se representa como binario 11, la izquierda 2 11 * 9 = 18 (fabricado por 2y: bits de configuración determinar el puerto 9 2y + 1, es decir, los bits 19, 18), la inversa a la GPIOC-> búsquedas,; este es tal GPIOC-> búsquedas, de 19, el registro de 18 bits se borra.

          GPIOC-> búsquedas, | = 1 << 9 * 2; // 01 * 9 2 izquierda = 18, es decir, 19, 18 conjunto de configuración de bits 01, y el puerto 9 configurado para implementar la operación de modo de salida

 

Supongo que te gusta

Origin www.cnblogs.com/Kelvin-Li/p/12454711.html
Recomendado
Clasificación