江科大自化协标准库改为HAL库 例程1:LED点亮,按键或光敏控制
第一步:安装Cubemx和jre(省略)
第二步:分别配置GPIO,RCC,SYS,时钟树(省略)
input
-
PA8 用于读取按键输入的电平 GPIO_ReadPin(GPIOA,GPIO_PIN_8)
-
PA0 用于读取光敏传感器模块输入电平 HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)
具体是上拉下拉,高速低速请看江科大自化协视频
output
- 根据按键和光敏的值 基于LED反馈,输出电平 HAL_GPIO_TogglePin(LED_Pin_Port,LED_Pin);
Main函数
#define LED_Pin GPIO_PIN_8
#define LED_Pin_Port GPIOB
#define KEY HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_8)
#define Light HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)
//按键扫描+电平翻转控制
void Scan_Keys()
{
if(KEY == 0){
HAL_Delay(500); //延时去抖动
if((KEY == 0))
{
HAL_GPIO_TogglePin(LED_Pin_Port,LED_Pin);
while(KEY == 0);
}
}
}
//光敏模块+扫描光敏给予的数字信号反馈LED
uint8_t Scan_light()
{
return Light;
}
void Light_led(){
if(Scan_light() == 1){
HAL_GPIO_WritePin(LED_Pin_Port,LED_Pin,0);
}else{
HAL_GPIO_WritePin(LED_Pin_Port,LED_Pin,1);
}
}
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
while (1)
{
// Scan_Keys(); 长按按键控制LED
Light_led();
}
以下省略
}