利用stm32的单片机完成下面的要求,程序该怎么写,用C语言
1、本次实验涉及3个模块,分别为发光二极管LED1、LED2,按键KEY1、KEY2,串口;2、LED闪烁周期分5档,分别为0.2秒,0.4秒,0.6秒,0.8秒,1秒;...
1、本次实验涉及3个模块,分别为发光二极管LED1、LED2,按键KEY1、KEY2,串口;
2、LED闪烁周期分5档,分别为0.2秒,0.4秒,0.6秒,0.8秒,1秒;
3、KEY控制LED的闪烁频率,每按1次,周期增加1档;KEY1控制LED1,KEY2控制LED2;
4、每次有键按下,通过串口发送到PC机上,如KEY1按下,则发送“KEY1.”,并换行。 展开
2、LED闪烁周期分5档,分别为0.2秒,0.4秒,0.6秒,0.8秒,1秒;
3、KEY控制LED的闪烁频率,每按1次,周期增加1档;KEY1控制LED1,KEY2控制LED2;
4、每次有键按下,通过串口发送到PC机上,如KEY1按下,则发送“KEY1.”,并换行。 展开
1个回答
展开全部
用两个定时器分别对两个LED灯闪烁,KEY1和KEY2要设置为外部中断输入,当进入中断时KEY1_DANG或KEY2_DANG指向下一个档位,并且发送串口。给你提供点思路。
void main()
{
while(1)
{
if(key1_dang==0x01)
中断定时1设置为0.2秒
if(key1_dang==0x02)
中断定时1设置为0.4秒
if(key1_dang==0x03)
中断定时1设置为0.6秒
if(key1_dang==0x04)
中断定时1设置为0.8秒
if(key1_dang==0x05)
中断定时1设置为1.0秒
if(key2_dang==0x01)
中断定时2设置为0.2秒
if(key2_dang==0x02)
中断定时2设置为0.4秒
if(key2_dang==0x03)
中断定时2设置为0.6秒
if(key2_dang==0x04)
中断定时2设置为0.8秒
if(key2_dang==0x05)
中断定时2设置为1.0秒
}
}
void main()
{
while(1)
{
if(key1_dang==0x01)
中断定时1设置为0.2秒
if(key1_dang==0x02)
中断定时1设置为0.4秒
if(key1_dang==0x03)
中断定时1设置为0.6秒
if(key1_dang==0x04)
中断定时1设置为0.8秒
if(key1_dang==0x05)
中断定时1设置为1.0秒
if(key2_dang==0x01)
中断定时2设置为0.2秒
if(key2_dang==0x02)
中断定时2设置为0.4秒
if(key2_dang==0x03)
中断定时2设置为0.6秒
if(key2_dang==0x04)
中断定时2设置为0.8秒
if(key2_dang==0x05)
中断定时2设置为1.0秒
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询