typedef enum
{ GPIO_Mode_AIN = 0x0, //模拟输入,管脚作为模拟输入
GPIO_Mode_IN_FLOATING = 0x04,//浮空输入
GPIO_Mode_IPD = 0x28, //带下拉输入
GPIO_Mode_IPU = 0x48, //上拉输入(中断输入引脚定义一般为IPU)
GPIO_Mode_Out_OD = 0x14, //开漏输出
GPIO_Mode_Out_PP = 0x10, //推挽输出
GPIO_Mode_AF_OD = 0x1C, //复用功能开漏输出
GPIO_Mode_AF_PP = 0x18 //复用功能推挽输出
}GPIOMode_TypeDef;
UART的TX引脚,应该设为输出,应该是复用功能且为输出;
UART的RX引脚,应该设为输入,应该是浮空输入;
开漏和推挽输出:
http://write.blog.csdn.net/postedit
http://blog.csdn.net/tidavery/article/details/16760071?locationNum=2&fps=1
volatile这个关键字用来修饰变量时表示该变量的值可能被硬件更改,因此每次读取这个变量值的时候要重新从内存中读取这个变量值,而不是使用保存在寄存器里的备份。
GPIO相关寄存器:控制寄存器、数据寄存器和置位/复位寄存器
嵌套中断向量(NVIC)控制器:中断使能寄存器、中断除能寄存器、中断挂起寄存器、中断清楚寄存器和中断优先级寄存器
RCC–时钟控制器,可开启或关闭各总线的时钟
RTC–STM32中内部集成的一个简单的时钟(计时用)