单片机中IO口是万能的,能你所想,能你所不敢想。
目录
一、【标准库】
1.GPIO重要函数(标准库)
/* IO口初始化 */
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;//引脚号
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//工作模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//翻转速度
GPIO_Init(GPIOC,&GPIO_InitStructure);//初始化IO参数;
/* 读取输入电平 */
GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);//位;
GPIO_ReadInputData(GPIOA);//组;
//IDR
/* 读取输出电平 */
GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_0);//位
GPIO_ReadOutputData(GPIOA);//组
//ODR
/* 设置输出电平 */
GPIO_SetBits(GPIOA,GPIO_Pin_0);//位为高低平;
//BSRR低16位
GPIO_ResetBits(GPIOA,GPIO_Pin_0);//位为低电平;
//BRR低16位
GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//位;
GPIO_Write(GPIOA,Bit_SET);//组;
2.实际应用(LED驱动)
GPIO_InitTypeDef GPIO_InitStructure;//定义结构体
//使能IO口时钟;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
//IO口初始化;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStructure);//初始化IO参数;
GPIO_ResetBits(GPIOC,GPIO_Pin_13);//设置为高低平