#defineRCC_APB2ENR_AFIOEN((uint32_t)0x00000001)/*!< Alternate Function I/O clock enable */#defineRCC_APB2ENR_IOPAEN((uint32_t)0x00000004)/*!< I/O port A clock enable */#defineRCC_APB2ENR_IOPBEN((uint32_t)0x00000008)/*!< I/O port B clock enable */#defineRCC_APB2ENR_IOPCEN((uint32_t)0x00000010)/*!< I/O port C clock enable */#defineRCC_APB2ENR_IOPDEN((uint32_t)0x00000020)/*!< I/O port D clock enable */#defineRCC_APB2ENR_ADC1EN((uint32_t)0x00000200)/*!< ADC 1 interface clock enable */#if!defined(STM32F10X_LD_VL)&&!defined(STM32F10X_MD_VL)&&!defined(STM32F10X_HD_VL)#defineRCC_APB2ENR_ADC2EN((uint32_t)0x00000400)/*!< ADC 2 interface clock enable */#endif#defineRCC_APB2ENR_TIM1EN((uint32_t)0x00000800)/*!< TIM1 Timer clock enable */#defineRCC_APB2ENR_SPI1EN((uint32_t)0x00001000)/*!< SPI 1 clock enable */#defineRCC_APB2ENR_USART1EN((uint32_t)0x00004000)/*!< USART1 clock enable */#ifdefined(STM32F10X_LD_VL)||defined(STM32F10X_MD_VL)||defined(STM32F10X_HD_VL)#defineRCC_APB2ENR_TIM15EN((uint32_t)0x00010000)/*!< TIM15 Timer clock enable */#defineRCC_APB2ENR_TIM16EN((uint32_t)0x00020000)/*!< TIM16 Timer clock enable */#defineRCC_APB2ENR_TIM17EN((uint32_t)0x00040000)/*!< TIM17 Timer clock enable */#endif#if!defined(STM32F10X_LD)&&!defined(STM32F10X_LD_VL)#defineRCC_APB2ENR_IOPEEN((uint32_t)0x00000040)/*!< I/O port E clock enable */#endif/* STM32F10X_LD && STM32F10X_LD_VL */#ifdefined(STM32F10X_HD)||defined(STM32F10X_XL)#defineRCC_APB2ENR_IOPFEN((uint32_t)0x00000080)/*!< I/O port F clock enable */#defineRCC_APB2ENR_IOPGEN((uint32_t)0x00000100)/*!< I/O port G clock enable */#defineRCC_APB2ENR_TIM8EN((uint32_t)0x00002000)/*!< TIM8 Timer clock enable */#defineRCC_APB2ENR_ADC3EN((uint32_t)0x00008000)/*!< DMA1 clock enable */#endif#ifdefined(STM32F10X_HD_VL)#defineRCC_APB2ENR_IOPFEN((uint32_t)0x00000080)/*!< I/O port F clock enable */#defineRCC_APB2ENR_IOPGEN((uint32_t)0x00000100)/*!< I/O port G clock enable */#endif#ifdefSTM32F10X_XL#defineRCC_APB2ENR_TIM9EN((uint32_t)0x00080000)/*!< TIM9 Timer clock enable */#defineRCC_APB2ENR_TIM10EN((uint32_t)0x00100000)/*!< TIM10 Timer clock enable */#defineRCC_APB2ENR_TIM11EN((uint32_t)0x00200000)/*!< TIM11 Timer clock enable */#endif
宏定义
值
说明
RCC_APB2ENR_AFIOE
0x00000001
复位 AFIO
RCC_APB2ENR_IOPAEN
0x00000004
使能 GPIOA
RCC_APB2ENR_IOPBEN
0x00000008
使能 GPIOB
RCC_APB2ENR_IOPCEN
0x00000010
使能 GPIOC
RCC_APB2ENR_IOPDEN
0x00000020
使能 GPIOD
RCC_APB2ENR_ADC1EN
0x00000200
使能 ADC1
RCC_APB2ENR_TIM1EN
0x00000800
使能高级定时器 TIM1
RCC_APB2ENR_SPI1EN
0x00001000
使能 SPI1
RCC_APB2ENR_USART1EN
0x00004000
使能 USART1
2、GPIO_CRL 寄存器位定义
#defineGPIO_CRL_MODE((uint32_t)0x33333333)/*!< Port x mode bits */#defineGPIO_CRL_MODE0((uint32_t)0x00000003)/*!< MODE0[1:0] bits (Port x mode bits, pin 0) */#defineGPIO_CRL_MODE0_0((uint32_t)0x00000001)/*!< Bit 0 */#defineGPIO_CRL_MODE0_1((uint32_t)0x00000002)/*!< Bit 1 */#defineGPIO_CRL_MODE1((uint32_t)0x00000030)/*!< MODE1[1:0] bits (Port x mode bits, pin 1) */#defineGPIO_CRL_MODE1_0((uint32_t)0x00000010)/*!< Bit 0 */#defineGPIO_CRL_MODE1_1((uint32_t)0x00000020)/*!< Bit 1 */#defineGPIO_CRL_MODE2((uint32_t)0x00000300)/*!< MODE2[1:0] bits (Port x mode bits, pin 2) */#defineGPIO_CRL_MODE2_0((uint32_t)0x00000100)/*!< Bit 0 */#defineGPIO_CRL_MODE2_1((uint32_t)0x00000200)/*!< Bit 1 */#defineGPIO_CRL_MODE3((uint32_t)0x00003000)/*!< MODE3[1:0] bits (Port x mode bits, pin 3) */#defineGPIO_CRL_MODE3_0((uint32_t)0x00001000)/*!< Bit 0 */#defineGPIO_CRL_MODE3_1((uint32_t)0x00002000)/*!< Bit 1 */#defineGPIO_CRL_MODE4((uint32_t)0x00030000)/*!< MODE4[1:0] bits (Port x mode bits, pin 4) */#defineGPIO_CRL_MODE4_0((uint32_t)0x00010000)/*!< Bit 0 */#defineGPIO_CRL_MODE4_1((uint32_t)0x00020000)/*!< Bit 1 */#defineGPIO_CRL_MODE5((uint32_t)0x00300000)/*!< MODE5[1:0] bits (Port x mode bits, pin 5) */#defineGPIO_CRL_MODE5_0((uint32_t)0x00100000)/*!< Bit 0 */#defineGPIO_CRL_MODE5_1((uint32_t)0x00200000)/*!< Bit 1 */#defineGPIO_CRL_MODE6((uint32_t)0x03000000)/*!< MODE6[1:0] bits (Port x mode bits, pin 6) */#defineGPIO_CRL_MODE6_0((uint32_t)0x01000000)/*!< Bit 0 */#defineGPIO_CRL_MODE6_1((uint32_t)0x02000000)/*!< Bit 1 */#defineGPIO_CRL_MODE7((uint32_t)0x30000000)/*!< MODE7[1:0] bits (Port x mode bits, pin 7) */#defineGPIO_CRL_MODE7_0((uint32_t)0x10000000)/*!< Bit 0 */#defineGPIO_CRL_MODE7_1((uint32_t)0x20000000)/*!< Bit 1 */#defineGPIO_CRL_CNF((uint32_t)0xCCCCCCCC)/*!< Port x configuration bits */#defineGPIO_CRL_CNF0((uint32_t)0x0000000C)/*!< CNF0[1:0] bits (Port x configuration bits, pin 0) */#defineGPIO_CRL_CNF0_0((uint32_t)0x00000004)/*!< Bit 0 */#defineGPIO_CRL_CNF0_1((uint32_t)0x00000008)/*!< Bit 1 */#defineGPIO_CRL_CNF1((uint32_t)0x000000C0)/*!< CNF1[1:0] bits (Port x configuration bits, pin 1) */#defineGPIO_CRL_CNF1_0((uint32_t)0x00000040)/*!< Bit 0 */#defineGPIO_CRL_CNF1_1((uint32_t)0x00000080)/*!< Bit 1 */#defineGPIO_CRL_CNF2((uint32_t)0x00000C00)/*!< CNF2[1:0] bits (Port x configuration bits, pin 2) */#defineGPIO_CRL_CNF2_0((uint32_t)0x00000400)/*!< Bit 0 */#defineGPIO_CRL_CNF2_1((uint32_t)0x00000800)/*!< Bit 1 */#defineGPIO_CRL_CNF3((uint32_t)0x0000C000)/*!< CNF3[1:0] bits (Port x configuration bits, pin 3) */#defineGPIO_CRL_CNF3_0((uint32_t)0x00004000)/*!< Bit 0 */#defineGPIO_CRL_CNF3_1((uint32_t)0x00008000)/*!< Bit 1 */#defineGPIO_CRL_CNF4((uint32_t)0x000C0000)/*!< CNF4[1:0] bits (Port x configuration bits, pin 4) */#defineGPIO_CRL_CNF4_0((uint32_t)0x00040000)/*!< Bit 0 */#defineGPIO_CRL_CNF4_1((uint32_t)0x00080000)/*!< Bit 1 */#defineGPIO_CRL_CNF5((uint32_t)0x00C00000)/*!< CNF5[1:0] bits (Port x configuration bits, pin 5) */#defineGPIO_CRL_CNF5_0((uint32_t)0x00400000)/*!< Bit 0 */#defineGPIO_CRL_CNF5_1((uint32_t)0x00800000)/*!< Bit 1 */#defineGPIO_CRL_CNF6((uint32_t)0x0C000000)/*!< CNF6[1:0] bits (Port x configuration bits, pin 6) */#defineGPIO_CRL_CNF6_0((uint32_t)0x04000000)/*!< Bit 0 */#defineGPIO_CRL_CNF6_1((uint32_t)0x08000000)/*!< Bit 1 */#defineGPIO_CRL_CNF7((uint32_t)0xC0000000)/*!< CNF7[1:0] bits (Port x configuration bits, pin 7) */#defineGPIO_CRL_CNF7_0((uint32_t)0x40000000)/*!< Bit 0 */#defineGPIO_CRL_CNF7_1((uint32_t)0x80000000)/*!< Bit 1 */
宏定义
值(十六进制)
值(二进制)
功能描述
GPIO_CRL_MODE
0x33333333
... 00110011
所有引脚的 MODE 位掩码(复位值)
GPIO_CRL_MODE0
0x00000003
... 00000011
引脚 0 的 MODE 位 0、1
GPIO_CRL_MODE0_0
0x00000001
... 00000001
引脚 0 的 MODE 位 0
GPIO_CRL_MODE0_1
0x00000002
... 00000010
引脚 0 的 MODE 位 1
GPIO_CRL_MODE1
0x00000030
... 00110000
引脚 1 的 MODE 位 4 、5
GPIO_CRL_MODE1_0
0x00000010
... 00010000
引脚 1 的 MODE 位 4
GPIO_CRL_MODE1_1
0x00000020
... 00100000
引脚 1 的 MODE 为 5
…
…
…
…
宏定义
值(十六进制)
值(二进制)
功能描述
GPIO_CRL_CNF
0xCCCCCCCC
... 11001100
所有引脚的 CNF 位掩码(复位值)
GPIO_CRL_CNF0
0x0000000C
... 00001100
引脚 0 的 CNF 位 2、3
GPIO_CRL_CNF0_0
0x00000004
... 00000100
引脚 0 的 CNF 位 2
GPIO_CRL_CNF0_1
0x00000008
... 00001000
引脚 0 的 CNF 位 3
GPIO_CRL_CNF1
0x000000C0
... 11000000
引脚 1 的 CNF 位 6、7
GPIO_CRL_CNF1_0
0x00000040
... 01000000
引脚 1 的 CNF 位 6
GPIO_CRL_CNF1_1
0x00000080
... 10000000
引脚 1 的 CNF 位 7
…
…
…
…
3、GPIO_ODR 寄存器位定义
#defineGPIO_ODR_ODR0((uint16_t)0x0001)/*!< Port output data, bit 0 */#defineGPIO_ODR_ODR1((uint16_t)0x0002)/*!< Port output data, bit 1 */#defineGPIO_ODR_ODR2((uint16_t)0x0004)/*!< Port output data, bit 2 */#defineGPIO_ODR_ODR3((uint16_t)0x0008)/*!< Port output data, bit 3 */#defineGPIO_ODR_ODR4((uint16_t)0x0010)/*!< Port output data, bit 4 */#defineGPIO_ODR_ODR5((uint16_t)0x0020)/*!< Port output data, bit 5 */#defineGPIO_ODR_ODR6((uint16_t)0x0040)/*!< Port output data, bit 6 */#defineGPIO_ODR_ODR7((uint16_t)0x0080)/*!< Port output data, bit 7 */#defineGPIO_ODR_ODR8((uint16_t)0x0100)/*!< Port output data, bit 8 */#defineGPIO_ODR_ODR9((uint16_t)0x0200)/*!< Port output data, bit 9 */#defineGPIO_ODR_ODR10((uint16_t)0x0400)/*!< Port output data, bit 10 */#defineGPIO_ODR_ODR11((uint16_t)0x0800)/*!< Port output data, bit 11 */#defineGPIO_ODR_ODR12((uint16_t)0x1000)/*!< Port output data, bit 12 */#defineGPIO_ODR_ODR13((uint16_t)0x2000)/*!< Port output data, bit 13 */#defineGPIO_ODR_ODR14((uint16_t)0x4000)/*!< Port output data, bit 14 */#defineGPIO_ODR_ODR15((uint16_t)0x8000)/*!< Port output data, bit 15 */
运算符
1. 算术运算符
算术运算符用于执行基本的数学运算,像加、减、乘、除等。
运算符描述示例加法int a 5 3; // a 的值为 8-减法int b 5 - 3; // b 的值为 2*乘法int c 5 * 3; // c 的值为 15/除法int d 6 / 3; // d 的值为 2%取模(取余&…