LED闪烁+LED流水灯+蜂鸣器
【闪烁一个LED】
- 流程
- 使用RCC开启GPIO的时钟(时钟默认关闭)
- 使用GPIO_Init函数初始化GPIO
- 使用输出或输入函数控制GPIO口
- RCC和GPIO有哪些库函数
- 点开rcc.h文件,一直拖到最下面是库函数所有函数的声明
-
点开gpio.h文件,一直拖到最下面是库函数所有函数的声明
- 用这些函数来实现LED闪烁(前面已经实现点灯)
- 逻辑是【(点亮LED+延时)+(熄灭LED+延时)】循环
然后就闪烁了,视频不好上传
【流水灯】虽然我不懂为什么两个灯还要搞跑马灯,就当掌握套路吧
好离谱,就是多控制了一个端口,两个灯也流不起来啊。
其他的一些知识(如果有好几个灯,端口分别是PA0到PA2)
- 如何增加端口的设置:
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_0 |GPIO_Pin_1 |GPIO_Pin_2;
为什么可以用”或“来设置:由定义可知P0口对应的是0X0001,P1口对应的是0X0002,P2口对应的是0X0004
把16进制换成2进制,分别是:0000 0000 0000 0001
把16进制换成2进制,分别是:0000 0000 0000 0010
把16进制换成2进制,分别是:0000 0000 0000 0100
进行“按位或”的操作,结果是:0000 0000 0000 0111。这样就同时选中了3个端口。
- 时钟控制和GPIO_SetBits这一项同样也可以用按位或的操作方式来选择多个外设
- 同时控制多个端口,可以使用GPIO_Write这个函数
GPIO_Write(GPIOA,~0X0001);
不支持2进制,只能转换成16进制来写。0X0001对应PA0。低电平点亮,所以前面加一个按位取反的符号。依次【点燃+延时】就可以达到流水灯的效果。
【蜂鸣器】
和前面几个一样,只是控制端口不同而已
好吵