舞蹈网站模版,家纺行业英文网站模板,免费申请域名空间,网站建设的软文素材完成#xff1a;从终端输入选项#xff0c;完成点灯关灯#xff0c;打开风扇关闭风扇等操作
#include gpio.h
int main()
{char a;//char buf[128];uart4_config();gpio_config();while(1){//接收一个字符数据a getchar();//发送接收的字符putchar(a);switch(…完成从终端输入选项完成点灯关灯打开风扇关闭风扇等操作
#include gpio.h
int main()
{char a;//char buf[128];uart4_config();gpio_config();while(1){//接收一个字符数据a getchar();//发送接收的字符putchar(a);switch(a){case 1:{light1_on();}break;case 2:{light2_on();}break;case 3:{light3_on();}break;case 4:{fans_on();}break;case 0:{light_off();}break;}}return 0;
}#include gpio.hvoid uart4_config(){//使能GPIOB\GPIOG\UART4外设时钟RCC-MP_AHB4ENSETR | (0x16); //gpioBRCC-MP_AHB4ENSETR | (0x11); //gpioGRCC-MP_APB4ENSETR | (0x116); //uart4//设置PB2、PG11用于UART4管脚复用GPIOB-MODER ~(0x34);GPIOB-MODER | (0x24);GPIOB-AFRL ~(0xf8);GPIOB-AFRL | (0x88);GPIOG-MODER ~(0x322);GPIOG-MODER | (0x222);GPIOG-AFRH ~(0xf12);GPIOG-AFRH | (0x612);//设置串口禁用USART4-CR1 ~(0x1);//设置数据位宽为8位USART4-CR1 (~(0x112));USART4-CR1 (~(0x128));//设置无奇偶校验位USART4-CR1 (~(0x110));//设置16倍过采样USART4-CR1 (~(0x115));//设置1位停止位USART4-CR2 (~(0x312));//设置不分频USART4-PRESC (~0xf);//设置波特率为115200USART4-BRR 0x22B;//使能发送器USART4-CR1 | (0x13);//使能接收器USART4-CR1 | (0x12);//使能串口USART4-CR1 | (0x1);}void putchar(char a)
{while(!(USART4-ISR (0x17)));USART4-TDRa;while(!(USART4-ISR (0x16)));
}char getchar()
{char a;while(!(USART4-ISR (0x15)));aUSART4-RDR;return a;
}void puts(char *s)
{while(*s){putchar(*s);s;}putchar(\r);putchar(\n);
}void gets(char *s)
{while(1){*s getchar();putchar(*s);if(*s r)break;s;}*s \0;putchar(\n);
}void gpio_config()
{RCC_GPIO |(0x34);GPIOE-MODER (~(0x320));GPIOE-MODER |(0x120);GPIOE-OTYPER (~(0x110));GPIOE-OSPEEDR (~(0x320));GPIOE-PUPDR (~(0x320));GPIOF-MODER (~(0x320));GPIOF-MODER |(0x120);GPIOF-OTYPER (~(0x110));GPIOF-OSPEEDR (~(0x320));GPIOF-PUPDR (~(0x320));GPIOE-MODER (~(0x316));GPIOE-MODER |(0x116);GPIOE-OTYPER (~(0x18));GPIOE-OSPEEDR (~(0x316));GPIOE-PUPDR (~(0x316));GPIOE-MODER (~(0x318));GPIOE-MODER |(0x118);GPIOE-OTYPER (~(0x19));GPIOE-OSPEEDR (~(0x318));GPIOE-PUPDR (~(0x318));}void light1_on()
{GPIOE-ODR | (0x110);
}void light2_on()
{GPIOF-ODR | (0x110);
}void light3_on()
{GPIOE-ODR | (0x18);
}void fans_on()
{GPIOE-ODR | (0x19);
}void light_off()
{GPIOE-ODR (~(0x110));GPIOF-ODR (~(0x110));GPIOE-ODR (~(0x18));GPIOE-ODR (~(0x19));
}
#include gpio.hvoid uart4_config(){//使能GPIOB\GPIOG\UART4外设时钟RCC-MP_AHB4ENSETR | (0x16); //gpioBRCC-MP_AHB4ENSETR | (0x11); //gpioGRCC-MP_APB4ENSETR | (0x116); //uart4//设置PB2、PG11用于UART4管脚复用GPIOB-MODER ~(0x34);GPIOB-MODER | (0x24);GPIOB-AFRL ~(0xf8);GPIOB-AFRL | (0x88);GPIOG-MODER ~(0x322);GPIOG-MODER | (0x222);GPIOG-AFRH ~(0xf12);GPIOG-AFRH | (0x612);//设置串口禁用USART4-CR1 ~(0x1);//设置数据位宽为8位USART4-CR1 (~(0x112));USART4-CR1 (~(0x128));//设置无奇偶校验位USART4-CR1 (~(0x110));//设置16倍过采样USART4-CR1 (~(0x115));//设置1位停止位USART4-CR2 (~(0x312));//设置不分频USART4-PRESC (~0xf);//设置波特率为115200USART4-BRR 0x22B;//使能发送器USART4-CR1 | (0x13);//使能接收器USART4-CR1 | (0x12);//使能串口USART4-CR1 | (0x1);}void putchar(char a)
{while(!(USART4-ISR (0x17)));USART4-TDRa;while(!(USART4-ISR (0x16)));
}char getchar()
{char a;while(!(USART4-ISR (0x15)));aUSART4-RDR;return a;
}void gpio_config()
{RCC_GPIO |(0x34);GPIOE-MODER (~(0x320));GPIOE-MODER |(0x120);GPIOE-OTYPER (~(0x110));GPIOE-OSPEEDR (~(0x320));GPIOE-PUPDR (~(0x320));GPIOF-MODER (~(0x320));GPIOF-MODER |(0x120);GPIOF-OTYPER (~(0x110));GPIOF-OSPEEDR (~(0x320));GPIOF-PUPDR (~(0x320));GPIOE-MODER (~(0x316));GPIOE-MODER |(0x116);GPIOE-OTYPER (~(0x18));GPIOE-OSPEEDR (~(0x316));GPIOE-PUPDR (~(0x316));GPIOE-MODER (~(0x318));GPIOE-MODER |(0x118);GPIOE-OTYPER (~(0x19));GPIOE-OSPEEDR (~(0x318));GPIOE-PUPDR (~(0x318));}void light1_on()
{GPIOE-ODR | (0x110);
}void light2_on()
{GPIOF-ODR | (0x110);
}void light3_on()
{GPIOE-ODR | (0x18);
}void fans_on()
{GPIOE-ODR | (0x19);
}void light_off()
{GPIOE-ODR (~(0x110));GPIOF-ODR (~(0x110));GPIOE-ODR (~(0x18));GPIOE-ODR (~(0x19));
}