请问各位老哥,求一个遥控代码切换输出高低电平的代码。跪了!
c语言吧
全部回复
仅看楼主
level 1
STm32f103c8t6 红外信号由PB7进, PB13控制开关(输出高低电平) 求老哥们帮帮忙看看点拨一下(上课没听讲)[乖]
while (1)
if ( HAL_GPIO_ReadPin ( GPIOB , GPIO_PIN_7 )(例如xxxxxxx)
{
HAL_GPIO_WritePin ( GPIOC , GPIO_PIN_13 , 0 ) ;
}
else
{
HAL_GPIO_WritePin ( GPIOC , GPIO_PIN_13 , 1 ) ;
}
2022年04月24日 15点04分 1
level 1
差不多是这个例子 https://www.micropeta.com/video72
达到下面的效果
2022年04月24日 15点04分 2
level 1
const int irPin = 4;
void setup() {
Serial.begin(115200);
pinMode(irPin, INPUT);
}
void loop() {
int key = getIrKey();
if(key != 0)
Serial.println(key);
}
int getIrKey(){
int len = pulseIn(irPin,LOW);
int key, temp;
key = 0;
//Serial.print("len=");
//Serial.println(len);
if(len > 5000) {
for(int i=1;i<=32;i++){
temp = pulseIn(irPin,HIGH);
if(temp > 1000)
key = key + (1<<(i-17));
}
}
if(key < 0 )
key = -key;
delay(250);
return key;
}
2022年04月24日 15点04分 3
level 1
const int irPin = 4;
const int Relay1 = 0;
const int Relay2 = 1;
const int Relay3 = 2;
const int Relay4 = 3;
boolean Relay1State = false;
boolean Relay2State = false;
boolean Relay3State = false;
boolean Relay4State = false;
void setup() {
//Serial.begin(115200);
pinMode(irPin, INPUT);
pinMode(Relay1, OUTPUT);
pinMode(Relay2, OUTPUT);
pinMode(Relay3, OUTPUT);
pinMode(Relay4, OUTPUT);
}
void loop() {
int key = getIrKey();
if(key == 1 ){
Relay1State = !Relay1State;
if(Relay1State == true)
digitalWrite(Relay1, HIGH);
else
digitalWrite(Relay1, LOW);
}
if(key == 2 ){
Relay2State = !Relay2State;
if(Relay2State == true)
digitalWrite(Relay2, HIGH);
else
digitalWrite(Relay2, LOW);
}
if(key == 3 ){
Relay3State = !Relay3State;
if(Relay3State == true)
digitalWrite(Relay3, HIGH);
else
digitalWrite(Relay3, LOW);
}
if(key == 4 ){
Relay4State = !Relay4State;
if(Relay4State == true)
digitalWrite(Relay4, HIGH);
else
digitalWrite(Relay4, LOW);
}
}
int getIrKey(){
int len = pulseIn(irPin,LOW);
int key, temp;
key = 0;
//Serial.print("len=");
//Serial.println(len);
if(len > 5000) {
for(int i=1;i<=32;i++){
temp = pulseIn(irPin,HIGH);
if(temp > 1000)
key = key + (1<<(i-17));
}
}
if(key < 0 )
key = -key;
//if(key)
//Serial.println(key);
delay(250);
return key;
}
2022年04月24日 22点04分 4
1