微控制器控制PB8 的亮灭,按一次亮,再按一次灭
时间: 2023-05-20 16:06:53 浏览: 99
可以使用以下代码实现:
```c
#include "stm32f10x.h"
int main(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
// 使能GPIOB时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
// 配置PB8为推挽输出
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
// 循环检测PB8的状态并控制亮灭
while (1)
{
if (GPIO_ReadOutputDataBit(GPIOB, GPIO_Pin_8) == Bit_RESET)
{
GPIO_SetBits(GPIOB, GPIO_Pin_8);
}
else
{
GPIO_ResetBits(GPIOB, GPIO_Pin_8);
}
// 延时一段时间
for (int i = 0; i < 1000000; i++);
}
}
```
阅读全文