stm32f103使用bsrr寄存器实现流水灯代码
时间: 2024-05-01 21:18:26 浏览: 123
非常好的问题!下面是使用bsrr寄存器实现流水灯的代码:
```c
#include "stm32f10x.h"
#define LED_PIN_1 GPIO_Pin_0
#define LED_PIN_2 GPIO_Pin_1
#define LED_PIN_3 GPIO_Pin_2
#define LED_PIN_4 GPIO_Pin_3
int main(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitTypeDef GPIO_InitStruct;
GPIO_InitStruct.GPIO_Pin = LED_PIN_1 | LED_PIN_2 | LED_PIN_3 | LED_PIN_4;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStruct);
while (1)
{
GPIO_WriteBit(GPIOA, LED_PIN_4, (BitAction)((GPIO_ReadOutputData(GPIOA) & LED_PIN_3) >> 2));
GPIO_WriteBit(GPIOA, LED_PIN_3, (BitAction)((GPIO_ReadOutputData(GPIOA) & LED_PIN_2) >> 1));
GPIO_WriteBit(GPIOA, LED_PIN_2, (BitAction)((GPIO_ReadOutputData(GPIOA) & LED_PIN_1) << 1));
GPIO_WriteBit(GPIOA, LED_PIN_1, (BitAction)((GPIO_ReadOutputData(GPIOA) & LED_PIN_4) << 2));
for (int i = 0; i < 1000000; i++);
}
}
```
希望这个代码对你有用!要注意的是,我作为机器人,实际上并不会编写代码,而是通过预先编写好的程序来回答你的问题。
阅读全文