STM32 experiencia de aprendizaje seis: el aprendizaje de idiomas C-relacionado y la lectura de registro de nombre de asignación de direcciones

Grabarlo, para facilitar el futuro ~ leer
elementos principales:
1) que se utilizan para explicar el lenguaje C;
2) la interpretación del registro de direcciones de asignación de nombres.
La información oficial: "el Manual de Referencia STM32 chino V10" Capítulo 8 generales y las funciones de multiplexión IO (GPIO) y Afio
1. lenguaje común C
1.1 Operación: operación de seis bits del operador
1) bit a bit Y: Y
Ejemplo: 1011 y 0010 = 0010
2) oR bit a bit: |
Ejemplo: 1011 | 0010 = 1011
3) o XOR bit a bit: ^.
Ejemplo: 1011 ^ 0010 = 1001
4) Invertir: -
Ejemplo: - 1,011 = 0,100
5) a la izquierda: <<
Ejemplo : 0110 << 1 = 1100 es
6) a la derecha: >>
Ejemplo: 1 = 0110 >> 0011
7) una combinación de: a nivel de bits y después de la misión: & =

GPIOA->CRL&=0XFFFFFF0F;      //将第4-7位清0
GPIOA->CRL|=0X00000040;  //设置相应位的值,不改变其他位的值

1.2 Imagen definir macros
definen el preprocesador lenguaje C para la definición de macro, puede mejorar la legibilidad del código fuente para facilitar la programación.
Formato común:
cadena de identificador # define
identificador definido como un nombre de macro. Cadena puede ser una expresión constante, cadena de formato.
Ejemplo:

#define SYSCLK_FREQ_72MHz 72000000

72000000 SYSCLK_FREQ_72MHz valor de identificador de definición.
1.3 ifdef compilación condicional
proceso de desarrollo del programa del microcontrolador, a menudo se encuentran con una situación cuando se cumplen ciertas condiciones para un conjunto de sentencias que se compiló, y cuando no se cumplen las condiciones se compila otro grupo de declaraciones. La forma más común de mando condicional de compilación:
identificador #ifdef
bloque 1.
#Else
bloque 2
#endif
Ejemplo:

#ifdef STM32F10X_HD
//大容量芯片需要的一些变量定义
#end

1.4 variables extern declarado
antes de que el lenguaje C se puede colocar en la variable o función para indicar variables o funciones definidas en otros archivos, busque consejos a los encuentros del compilador definidos en otros módulos en esta variable y la función extern. variables extern puede ser declarada por muchas veces, pero sólo una vez definida .

1,5 typedef tipo de alias
define un tipo de alias, en lugar de una simple sustitución macro. tipo de puntero puede ser utilizado como una declaración de que una pluralidad de objetos.
unsigned char uint8_t typedef;
typedef unsigned int uint16_t corta;
typedef unsigned int uint32_t;
typedef unsigned uint64_t la __int64;

1.6 estructura: tipo de configuración
Struct nombre de la estructura {
lista de miembros 1;
variable miembro 2;
. . .
} Lista Nombre de la variable;

se puede definir variables en el momento estructura indicado puede también ser definida más tarde afirmó que el método es:
Struct nombre de estructura de lista variables de estructura;
efecto: el mismo tipo puede ser una matriz, puede utilizar diferentes tipos de estructura de tejido.
estructura escalable.
Ejemplo:

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)

1.7 estáticas
variables locales estáticas declaradas en la zona de almacenamiento estático.
Es al final de la llamada de función, no será puesto en libertad, el valor será siempre.
Así declarada variable local estática, con función de memoria.
2. nombre MDK en el análisis de correlación de direcciones registro de
concepto: para MCU, toda la configuración subyacente, de extremo todos los registros de configuración .
STM32 operación :
GPIOA-> ODR = 0x00000000;
el problema: el valor 0x00000000 es cómo registrar la asignación de direcciones de ODR GPIOA? Eso GPIOA-> ODR este escrito, se forma en el mapeo de GPIOA la dirección del registro ODR arriba? Entiendo que esta tabla a continuación puede entender.
Aquí Insertar imagen Descripción
Conocimiento :
1) El aprendizaje de idiomas C funciones de uso común;
2) Aprender dirección del registro de asignación de nombres, se refieren STM32 experiencia de cinco aprendizaje: Experimento GPIO - en base a la operación de bit .

Publicado 24 artículos originales · ganado elogios 2 · Vistas 4127

Supongo que te gusta

Origin blog.csdn.net/Leisure_ksj/article/details/105155462
Recomendado
Clasificación