stm32f103c8t6利用光敏电阻实现灯光控制的代码
时间: 2023-06-15 13:04:38 浏览: 749
以下是使用STM32F103C8T6与光敏电阻实现灯光控制的示例代码:
```c
#include "stm32f10x.h"
#define LED_PIN GPIO_Pin_13
#define LED_GPIO_PORT GPIOC
#define LED_GPIO_CLK RCC_APB2Periph_GPIOC
#define PHOTO_PIN GPIO_Pin_0
#define PHOTO_GPIO_PORT GPIOB
#define PHOTO_GPIO_CLK RCC_APB2Periph_GPIOB
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStructure.GPIO_Pin = LED_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(LED_GPIO_PORT, &GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = PHOTO_PIN;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(PHOTO_GPIO_PORT, &GPIO_InitStructure);
}
int main(void)
{
GPIO_Configuration();
while (1)
{
int photo_value = GPIO_ReadInputDataBit(PHOTO_GPIO_PORT, PHOTO_PIN);
if (photo_value)
{
GPIO_SetBits(LED_GPIO_PORT, LED_PIN); // 光线强,打开LED灯
}
else
{
GPIO_ResetBits(LED_GPIO_PORT, LED_PIN); // 光线弱,关闭LED灯
}
}
}
```
在这个例子中,我们使用PB0引脚连接光敏电阻,PC13引脚连接LED灯。
在初始化函数`GPIO_Configuration`中,我们设置了LED引脚为输出模式,光敏电阻引脚为模拟输入模式。
在主循环中,我们读取光敏电阻引脚的值,如果光线强则打开LED灯,否则关闭LED灯。
阅读全文