寄存器:
根据硬件链接找到对应的io口
步骤:
1.第一步 同库函数过程建立工程模板,建立初始化函数文件
2.第二步编写初始化函数不同,直接对寄存器赋值来选择输出模式和高低电平
3在main中调用时钟初始化函数和串口初始化(配置寄存器选择io,选择模式)直接给数据输出寄存器赋值获得电平。
,
二、位操作
位操作有范围,位操作:通过改写寄存器位映射的地址来改写这个位。
位操作写跑马灯,可以直接用库函数版本写的led.c的初始化函数,区别在于最终的main.c中对输出高低电平由位操作控制较为方便,因为有封装好的映射函数,输出例子:PBout(对应的pin)=1/0;输入PBin()=1/0;跑马灯主函数:
本质上都是操作寄存器。要熟悉寄存器操作。
三蜂鸣器实验
不能直接通过io口驱动大功率器件
复位时时浮空状态。
与跑马灯不同的在于io不同其余一样
串口初始化:void BEEP_Init(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); //使能GPIOB端口时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //BEEP-->PB.8 端口配置
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //速度为50MHz
GPIO_Init(GPIOB, &GPIO_InitStructure); //根据参数初始化GPIOB.8
GPIO_ResetBits(GPIOB,GPIO_Pin_8);//输出0,关闭蜂鸣器输出
}
然后引用在主函数中用位操作或其他给5和8io输出高低电平即可。