网站建设项目职责,兰州中川国际机场,山东外贸公司名录,东莞网站建设科技公司题目#xff1a;题目一#xff1a;通过操作Cortex-A7核#xff0c;串口输入相应的命令#xff0c;控制LED灯进行工作---上传CSDN 1.例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输…题目题目一通过操作Cortex-A7核串口输入相应的命令控制LED灯进行工作---上传CSDN 1.例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输入led2off,开饭led2灯熄灭 5.例如在串口输入led3on,开饭led3灯点亮 6.例如在串口输入led3off,开饭led3灯熄灭题目二检测中断到来时让LED灯状态取反并且在串口工具上打印一句话---上传CSDN例如当按键1按下之后让LED1状态取反并打印“LED1 down”当按键2按下之后让LED2状态取反并打印“LED2 down”当按键3按下之后让LED3状态取反并打印“LED3 down”火焰传感器/人体红外/光电开关实验要求如上代码代码一mix.h#ifndef __MIX_H__
#define __MIX_H__ #include stm32mp1xx_rcc.h
#include stm32mp1xx_gpio.h
#include stm32mp1xx_uart.h void hal_mix_rcc();
void hal_mix_gpio();
void hal_mix_uart();
void func(); #endif
min.c#include mix.hextern void delay_ms(int ms);
void hal_mix_rcc()
{RCC-MP_AHB4ENSETR|(0x11);RCC-MP_AHB4ENSETR|(0x14);RCC-MP_AHB4ENSETR|(0x15);RCC-MP_AHB4ENSETR|(0x16);RCC-MP_APB1LPENSETR|(0x116);
}
void hal_mix_gpio()
{GPIOB-MODER(~(0x34));GPIOB-MODER|(0x24);GPIOG-MODER(~(0x322));GPIOG-MODER|(0x222);GPIOB-AFRL(~(0xf8));GPIOB-AFRL|(0x88);GPIOG-AFRH(~(0xf12));GPIOG-AFRH|(0x612);GPIOE-MODER(~(0x320));GPIOE-MODER|(0x120);GPIOF-MODER(~(0x320));GPIOF-MODER|(0x120);GPIOE-MODER(~(0x316));GPIOE-MODER|(0x116);GPIOE-OTYPER(~(0x110));GPIOF-OTYPER(~(0x110));GPIOE-OTYPER(~(0x18));GPIOE-OSPEEDR(~(0x320));GPIOF-OSPEEDR(~(0x320));GPIOE-OSPEEDR(~(0x316));GPIOE-PUPDR(~(0x320));GPIOF-PUPDR(~(0x320));GPIOE-PUPDR(~(0x316));
}
void hal_led_on(int num)
{switch(num){case 1:GPIOE-ODR|(0x110);break;case 2:GPIOF-ODR|(0x110);break;case 3:GPIOE-ODR|(0x18);break;}
}
void hal_led_off(int num)
{switch(num) { case 1: GPIOE-ODR(~(0x110));break; case 2: GPIOF-ODR(~(0x110));break; case 3: GPIOE-ODR(~(0x18)); break; }
}
void hal_mix_uart()
{delay_ms(20);USART4-CR1(~(0x10));USART4-CR1(~(0x128));USART4-CR1(~(0x112));USART4-CR1(~(0x115));USART4-CR1(~(0x110));USART4-CR2(~(0x312));USART4-PRESC(~(0xf0));USART4-BRR0x22B;USART4-CR1|(0x13);USART4-CR1|(0x12);USART4-CR1|(0x10);
}
void put_char(const char ch)
{while(!(USART4-ISR(0x17)));USART4-TDRch;while(!(USART4-ISR(0x16)));
}
void put_string(const char *string)
{int i0;char ch;while(1){chstring[i];put_char(ch);if(ch\0){break;}i;}
}
char get_char()
{char ch;while(!(USART4-ISR(0x15)));chUSART4-RDR; return ch;
}
char buffer[20];
char *get_string()
{for(int i0;i19;i){buffer[i]get_char();put_char(buffer[i]);if(buffer[i]\r){put_char(\n);buffer[i]\0;break;}}return buffer;
}
int my_strcmp(char *a,char *b)
{int i0;int j0;while(*(ai)!\0*(bj)!\0*(ai)*(bj)){i;j;}return *(ai)-*(bj);
}
void func()
{char temp[20]{0};get_string();if(my_strcmp(buffer,led1on)0){hal_led_on(1);}else if(my_strcmp(buffer,led1off)0){hal_led_off(1);}else if(my_strcmp(buffer,led2on)0){hal_led_on(2);}else if(my_strcmp(buffer,led2off)0){hal_led_off(2);}else if(my_strcmp(buffer,led3on)0){hal_led_on(3);}else if(my_strcmp(buffer,led3off)0){hal_led_off(3);}
}
main.c#include mix.h
extern void printf(const char *fmt, ...);
void delay_ms(int ms)
{int i,j;for(i 0; i ms;i)for (j 0; j 1800; j);
}int main()
{hal_mix_rcc(); hal_mix_gpio(); hal_mix_uart(); printf(abc);while(1){func(); }return 0;
}
代码二运行结果结果一结果二