#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