当前位置: 首页 > news >正文

网站群建设指南找第三方做网站 需要注意

网站群建设指南,找第三方做网站 需要注意,网站系统开发毕业设计,哪里有个人卖房网站一、通过操作Cortex-A7核#xff0c;串口输入相应的命令#xff0c;控制LED灯进行工作 1.例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输入led2off,开饭led2灯熄灭 5.例如在串口输…一、通过操作Cortex-A7核串口输入相应的命令控制LED灯进行工作 1.例如在串口输入led1on,开饭led1灯点亮 2.例如在串口输入led1off,开饭led1灯熄灭 3.例如在串口输入led2on,开饭led2灯点亮 4.例如在串口输入led2off,开饭led2灯熄灭 5.例如在串口输入led3on,开饭led3灯点亮 6.例如在串口输入led3off,开饭led3灯熄灭 二、检测中断到来时让LED灯状态取反并且在串口工具上打印一句话 例如当按键1按下之后让LED1状态取反并打印“LED1 down” 当按键2按下之后让LED2状态取反并打印“LED2 down” 当按键3按下之后让LED3状态取反并打印“LED3 down” 火焰传感器/人体红外/光电开关实验要求如上  作业一 stm32mp1xx_rcc.h: #ifndef __STM32MP1XX_RCC_H__ #define __STM32MP1XX_RCC_H__ typedef struct {volatile unsigned int TZCR; // 0x000volatile unsigned int res1[2]; // 0x004-0x008volatile unsigned int OCENSETR; // 0x00Cvolatile unsigned int OCENCLRR; // 0x010volatile unsigned int res2[1]; // 0x014volatile unsigned int HSICFGR; // 0x018volatile unsigned int CSICFGR; // 0x01Cvolatile unsigned int MPCKSELR; // 0x020volatile unsigned int ASSCKSELR; // 0x024volatile unsigned int PCK12SELR; // 0x028volatile unsigned int MPCKDIVR; // 0x02Cvolatile unsigned int AXIDIVR; // 0x030volatile unsigned int res3[2]; volatile unsigned int APB4DIVR; // 0x03Cvolatile unsigned int APB5DIVR; // 0x040volatile unsigned int RTCDIVR; // 0x044volatile unsigned int MSSCKSELR; // 0x048volatile unsigned int res4[13];volatile unsigned int PLL1CR; // 0x080volatile unsigned int PLL1CFGR1; // 0x084volatile unsigned int PLL1CFGR2; // 0x088volatile unsigned int PLL1FRACR; // 0x08Cvolatile unsigned int PLL1CSGR; // 0x090volatile unsigned int PLL2CR; // 0x094volatile unsigned int PLL2CFGR1; // 0x098volatile unsigned int PLL2CFGR2; // 0x09Cvolatile unsigned int PLL2FRACR; // 0x0A0volatile unsigned int PLL2CSGR; // 0x0A4volatile unsigned int res5[6];volatile unsigned int I2C46CKSELR; // 0x0C0volatile unsigned int SPI6CKSELR; // 0x0C4volatile unsigned int UART1CKSELR; // 0x0C8volatile unsigned int RNG1CKSELR; // 0x0CCvolatile unsigned int CPERCKSELR; // 0x0D0volatile unsigned int STGENCKSELR; // 0x0D4volatile unsigned int DDRITFCR; // 0x0D8volatile unsigned int res6[9];volatile unsigned int MP_BOOTCR; // 0x100volatile unsigned int MP_SREQSETR; // 0x104volatile unsigned int MP_SREQCLRR; // 0x108volatile unsigned int MP_GCR; // 0x10Cvolatile unsigned int MP_APRSTCR; // 0x110 volatile unsigned int MP_APRSTSR; // 0x114volatile unsigned int res7[10];volatile unsigned int BDCR; // 0x140volatile unsigned int RDLSICR; // 0x144volatile unsigned int res8[14];volatile unsigned int APB4RSTSETR; // 0x180volatile unsigned int APB4RSTCLRR; // 0x184volatile unsigned int APB5RSTSETR; // 0x188volatile unsigned int APB5RSTCLRR; // 0x18Cvolatile unsigned int AHB5RSTSETR; // 0x190volatile unsigned int AHB5RSTCLRR; // 0x194volatile unsigned int AHB6RSTSETR; // 0x198volatile unsigned int AHB6RSTCLRR; // 0x19Cvolatile unsigned int TZAHB6RSTSELR;// 0x1A0volatile unsigned int TZAHB6RSTCLRR;// 0x1A4volatile unsigned int res9[22];volatile unsigned int MP_APB4ENSETR;// 0x200volatile unsigned int MP_APB4ENCLRR;// 0x204volatile unsigned int MP_APB5ENSETR;// 0x208volatile unsigned int MP_APB5ENCLRR;// 0x20Cvolatile unsigned int MP_AHB5ENSETR;// 0x210volatile unsigned int MP_AHB5ENCLRR;// 0x214volatile unsigned int MP_AHB6ENSETR;// 0x218volatile unsigned int MP_AHB6ENCLRR;// 0x21Cvolatile unsigned int MP_TZAHB6ENSELR;// 0x220volatile unsigned int MP_TZAHB6ENCLRR;// 0x224volatile unsigned int res10[22];volatile unsigned int MC_APB4ENSETR; // 0x280volatile unsigned int MC_APB4ENCLRR; // 0x284volatile unsigned int MC_APB5ENSETR; // 0x288volatile unsigned int MC_APB5ENCLRR; // 0x28Cvolatile unsigned int MC_AHB5ENSETR; // 0x290volatile unsigned int MC_AHB5ENCLRR; // 0x294volatile unsigned int MC_AHB6ENSETR; // 0x298volatile unsigned int MC_AHB6ENCLRR; // 0x29Cvolatile unsigned int res11[24];volatile unsigned int MP_APB4LPENSETR; // 0x300volatile unsigned int MP_APB4LPENCLRR; // 0x304volatile unsigned int MP_APB5LPENSETR; // 0x308volatile unsigned int MP_APB5LPENCLRR; // 0x30Cvolatile unsigned int MP_AHB5LPENSETR; // 0x310volatile unsigned int MP_AHB5LPENCLRR; // 0x314volatile unsigned int MP_AHB6LPENSETR; // 0x318volatile unsigned int MP_AHB6LPENCLRR; // 0x31Cvolatile unsigned int MP_TZAHB6LPENSETR; // 0x320volatile unsigned int MP_TZAHB6LPENCLRR; // 0x324volatile unsigned int res12[22];volatile unsigned int MC_APB4LPENSETR; // 0x380volatile unsigned int MC_APB4LPENCLRR; // 0x384volatile unsigned int MC_APB5LPENSETR; // 0x388volatile unsigned int MC_APB5LPENCLRR; // 0x38Cvolatile unsigned int MC_AHB5LPENSETR; // 0x390volatile unsigned int MC_AHB5LPENCLRR; // 0x394volatile unsigned int MC_AHB6LPENSETR; // 0x398volatile unsigned int MC_AHB6LPENCLRR; // 0x39Cvolatile unsigned int res13[24];volatile unsigned int BR_RSTSCLRR; // 0x400volatile unsigned int MP_GRSTCSETR; // 0x404volatile unsigned int MP_RSTSR; // 0x408 volatile unsigned int MP_IWDGFZSETR; // 0x40Cvolatile unsigned int MP_IWDGFZCLRR; // 0x410volatile unsigned int MP_CIER; // 0x414volatile unsigned int MP_CIFR; // 0x418volatile unsigned int PWRLPDLYCR; // 0x41Cvolatile unsigned int MP_RSTSS; // 0x420volatile unsigned int res14[247];volatile unsigned int MCO1CFGR; // 0x800volatile unsigned int MCO2CFGR; // 0x804 volatile unsigned int OCRDYR; // 0x808volatile unsigned int DBGCFGR; // 0x80Cvolatile unsigned int res15[4];volatile unsigned int RCK3SELR; // 0x820volatile unsigned int RCK4SELR; // 0x824volatile unsigned int TIMG1PRER; // 0x828volatile unsigned int TIMG2PRER; // 0x82Cvolatile unsigned int MCUDIVR; // 0x830volatile unsigned int APB1DIVR; // 0x834volatile unsigned int APB2DIVR; // 0x838volatile unsigned int APB3DIVR; // 0x83Cvolatile unsigned int res16[16];volatile unsigned int PLL3CR; // 0x880volatile unsigned int PLL3CFGR1; // 0x884volatile unsigned int PLL3CFGR2; // 0x888volatile unsigned int PLL3FRACR; // 0x88Cvolatile unsigned int PLL3CSGR; // 0x890volatile unsigned int PLL4CR; // 0x894volatile unsigned int PLL4CFGR1; // 0x898volatile unsigned int PLL4CFGR2; // 0x89Cvolatile unsigned int PLL4FRACR; // 0x8A0volatile unsigned int PLL4CSGR; // 0x8A4volatile unsigned int res17[6];volatile unsigned int I2C12CKSELR; // 0x8C0volatile unsigned int I2C35CKSELR; // 0x8C4volatile unsigned int SAI1CKSELR; // 0x8C8volatile unsigned int SAI2CKSELR; // 0x8CCvolatile unsigned int SAI3CKSELR; // 0x8D0volatile unsigned int SAI4CKSELR; // 0x8D4volatile unsigned int SPI2S1CKSELR; // 0x8D8volatile unsigned int SPI2S23CKSELR; // 0x8DCvolatile unsigned int SPI45CKSELR; // 0x8E0volatile unsigned int UART6CKSELR; // 0x8E4volatile unsigned int UART24CKSELR; // 0x8E8volatile unsigned int UART35CKSELR; // 0x8ECvolatile unsigned int UART78CKSELR; // 0x8F0volatile unsigned int SDMMC12CKSELR; // 0x8F4volatile unsigned int SDMMC3CKSELR; // 0x8F8volatile unsigned int ETHCKSELR; // 0x8FCvolatile unsigned int QSPICKSELR; // 0x900volatile unsigned int FMCCKSELR; // 0x904volatile unsigned int res18[1];volatile unsigned int FDCANCKSELR; // 0x90Cvolatile unsigned int res19[1];volatile unsigned int SPDIFCKSELR; // 0x914volatile unsigned int CECCKSELR; // 0x918volatile unsigned int USBCKSELR; // 0x91Cvolatile unsigned int RNG2CKSELR; // 0x920volatile unsigned int DSICKSELR; // 0x924volatile unsigned int ADCCKSELR; // 0x928volatile unsigned int LPTIM45CKSELR; // 0x92Cvolatile unsigned int LPTIM23CKSELR; // 0x930volatile unsigned int LPTIM1CKSELR; // 0x934volatile unsigned int res20[18];volatile unsigned int APB1RSTSETR; // 0x980volatile unsigned int APB1RSTCLRR; // 0x984volatile unsigned int APB2RSTSETR; // 0x988volatile unsigned int APB2RSTCLRR; // 0x98Cvolatile unsigned int APB3RSTSETR; // 0x990volatile unsigned int APB3RSTCLRR; // 0x994volatile unsigned int AHB2RSTSETR; // 0x998volatile unsigned int AHB2RSTCLRR; // 0x99Cvolatile unsigned int AHB3RSTSETR; // 0x9A0volatile unsigned int AHB3RSTCLRR; // 0x9A4volatile unsigned int AHB4RSTSETR; // 0x9A8volatile unsigned int AHB4RSTCLRR; // 0x9ACvolatile unsigned int res21[20];volatile unsigned int MP_APB1ENSETR; // 0xA00volatile unsigned int MP_APB1ENCLRR; // 0xA04volatile unsigned int MP_APB2ENSETR; // 0xA08volatile unsigned int MP_APB2ENCLRR; // 0xA0Cvolatile unsigned int MP_APB3ENSETR; // 0xA10volatile unsigned int MP_APB3ENCLRR; // 0xA14volatile unsigned int MP_AHB2ENSETR; // 0xA18volatile unsigned int MP_AHB2ENCLRR; // 0xA1Cvolatile unsigned int MP_AHB3ENSETR; // 0xA20volatile unsigned int MP_AHB3ENCLRR; // 0xA24volatile unsigned int MP_AHB4ENSETR; // 0xA28volatile unsigned int MP_AHB4ENCLRR; // 0xA2Cvolatile unsigned int res22[2];volatile unsigned int MP_MLAHBENSETR; // 0xA38volatile unsigned int MP_MLAHBENCLRR; // 0xA3Cvolatile unsigned int res23[16];volatile unsigned int MC_APB1ENSETR; // 0xA80volatile unsigned int MC_APB1ENCLRR; // 0xA84volatile unsigned int MC_APB2ENSETR; // 0xA88volatile unsigned int MC_APB2ENCLRR; // 0xA8Cvolatile unsigned int MC_APB3ENSETR; // 0xA90volatile unsigned int MC_APB3ENCLRR; // 0xA94volatile unsigned int MC_AHB2ENSETR; // 0xA98volatile unsigned int MC_AHB2ENCLRR; // 0xA9Cvolatile unsigned int MC_AHB3ENSETR; // 0xAA0volatile unsigned int MC_AHB3ENCLRR; // 0xAA4volatile unsigned int MC_AHB4ENSETR; // 0xAA8volatile unsigned int MC_AHB4ENCLRR; // 0xAACvolatile unsigned int MC_AXIMENSETR; // 0xAB0volatile unsigned int MC_AXIMENCLRR; // 0xAB4volatile unsigned int MC_MLAHBENSETR; // 0xAB8volatile unsigned int MC_MLAHBENCLRR; // 0xABCvolatile unsigned int res24[16];volatile unsigned int MP_APB1LPENSETR; // 0xB00volatile unsigned int MP_APB1LPENCLRR; // 0xB04volatile unsigned int MP_APB2LPENSETR; // 0xB08volatile unsigned int MP_APB2LPENCLRR; // 0xB0Cvolatile unsigned int MP_APB3LPENSETR; // 0xB10volatile unsigned int MP_APB3LPENCLRR; // 0xB14volatile unsigned int MP_AHB2LPENSETR; // 0xB18volatile unsigned int MP_AHB2LPENCLRR; // 0xB1Cvolatile unsigned int MP_AHB3LPENSETR; // 0xB20volatile unsigned int MP_AHB3LPENCLRR; // 0xB24volatile unsigned int MP_AHB4LPENSETR; // 0xB28volatile unsigned int MP_AHB4LPENCLRR; // 0xB2Cvolatile unsigned int MP_AXIMLPENSETR; // 0xB30volatile unsigned int MP_AXIMLPENCLRR; // 0xB34volatile unsigned int MP_MLAHBLPENSETR; // 0xB38volatile unsigned int MP_MLAHBLPENCLRR; // 0xB3Cvolatile unsigned int res25[16];volatile unsigned int MC_APB1LPENSETR; // 0xB80volatile unsigned int MC_APB1LPENCLRR; // 0xB84volatile unsigned int MC_APB2LPENSETR; // 0xB88volatile unsigned int MC_APB2LPENCLRR; // 0xB8Cvolatile unsigned int MC_APB3LPENSETR; // 0xB90 volatile unsigned int MC_APB3LPENCLRR; // 0xB94volatile unsigned int MC_AHB2LPENSETR; // 0xB98volatile unsigned int MC_AHB2LPENCLRR; // 0xB9Cvolatile unsigned int MC_AHB3LPENSETR; // 0xBA0 volatile unsigned int MC_AHB3LPENCLRR; // 0xBA4volatile unsigned int MC_AHB4LPENSETR; // 0xBA8volatile unsigned int MC_AHB4LPENCLRR; // 0xBACvolatile unsigned int MC_AXIMLPENSETR; // 0xBB0volatile unsigned int MC_AXIMLPENCLRR; // 0xBB4volatile unsigned int MC_MLAHBLPENSETR; // 0xBB8volatile unsigned int MC_MLAHBLPENCLRR; // 0xBBCvolatile unsigned int res26[16];volatile unsigned int MC_RSTSCLRR; // 0xC00volatile unsigned int res27[4];volatile unsigned int MC_CIER; // 0xC14volatile unsigned int MC_CIFR; // 0xC18volatile unsigned int res28[246];volatile unsigned int VERR; // 0xFF4volatile unsigned int IDR; // 0xFF8volatile unsigned int SIDR; // 0xFFC }rcc_t;#define RCC ((rcc_t *)0x50000000)#endif // __STM32MP1XX_RCC_H__stm32mp1xx_gpio.h: #ifndef __STM32MP1xx_GPIO_H__ #define __STM32MP1xx_GPIO_H__typedef struct {volatile unsigned int MODER; // 0x00volatile unsigned int OTYPER; // 0x04volatile unsigned int OSPEEDR; // 0x08volatile unsigned int PUPDR; // 0x0Cvolatile unsigned int IDR; // 0x10volatile unsigned int ODR; // 0x14volatile unsigned int BSRR; // 0x18volatile unsigned int LCKR; // 0x1C volatile unsigned int AFRL; // 0x20 volatile unsigned int AFRH; // 0x24volatile unsigned int BRR; // 0x28volatile unsigned int res;volatile unsigned int SECCFGR; // 0x30}gpio_t;#define GPIOA ((gpio_t *)0x50002000) #define GPIOB ((gpio_t *)0x50003000) #define GPIOC ((gpio_t *)0x50004000) #define GPIOD ((gpio_t *)0x50005000) #define GPIOE ((gpio_t *)0x50006000) #define GPIOF ((gpio_t *)0x50007000) #define GPIOG ((gpio_t *)0x50008000) #define GPIOH ((gpio_t *)0x50009000) #define GPIOI ((gpio_t *)0x5000A000) #define GPIOJ ((gpio_t *)0x5000B000) #define GPIOK ((gpio_t *)0x5000C000) #define GPIOZ ((gpio_t *)0x54004000)//对引脚进行封装 #define GPIO_PIN_0 0 #define GPIO_PIN_1 1 #define GPIO_PIN_2 2 #define GPIO_PIN_3 3 #define GPIO_PIN_4 4 #define GPIO_PIN_5 5 #define GPIO_PIN_6 6 #define GPIO_PIN_7 7 #define GPIO_PIN_8 8 #define GPIO_PIN_9 9 #define GPIO_PIN_10 10 #define GPIO_PIN_11 11 #define GPIO_PIN_12 12 #define GPIO_PIN_13 13 #define GPIO_PIN_14 14 #define GPIO_PIN_15 15//寄存器输出模式 typedef enum{ Input, Output, Alternate, Analog, }gpio_moder_t; //寄存器输出类型 typedef enum{ Push_pull, Open_drain, }gpio_otyper_t; //寄存器输出速度 typedef enum{ Low_speed, Medium_speed, High_speed, Very_high_speed, }gpio_ospeedr_t; //寄存器是否需要上下拉 typedef enum{ No_up_down, Pull_up, Pull_down, Reserved, }gpio_pupdr_t; //对GPIO引脚状态封装 typedef enum{ gpio_reset_t, gpio_set_t, }gpio_status_t; //对GPIO进行初始化 typedef struct{ gpio_moder_t moder; gpio_otyper_t otyper; gpio_ospeedr_t ospeedr;gpio_pupdr_t pupdr; }gpio_init_t; #endif // __STM32MP1xx_GPIO_H__stm32mp1xx_uart.h: #ifndef __STM32MP1XX_UART_H__ #define __STM32MP1XX_UART_H__typedef struct {volatile unsigned int CR1;volatile unsigned int CR2;volatile unsigned int CR3;volatile unsigned int BRR;volatile unsigned int GTPR;volatile unsigned int RTOR;volatile unsigned int RQR;volatile unsigned int ISR;volatile unsigned int ICR;volatile unsigned int RDR;volatile unsigned int TDR;volatile unsigned int PRESC; }uart_t;#define USART1 ((uart_t *)0x5C000000) #define USART2 ((uart_t *)0x4000E000) #define USART3 ((uart_t *)0x4000F000) #define USART4 ((uart_t *)0x40010000) #define USART5 ((uart_t *)0x40011000) #define USART6 ((uart_t *)0x44003000) #define USART7 ((uart_t *)0x40018000) #define USART8 ((uart_t *)0x40019000)#endif // __STM32MP1XX_UART_H__stm32mp1xx_exti.h: #ifndef __STM32MP1XX_EXTI_H__ #define __STM32MP1XX_EXTI_H__typedef struct{volatile unsigned int RTSR1; // EXTI rising trigger selection register volatile unsigned int FTSR1; // EXTI falling trigger selection register volatile unsigned int SWIER1; // EXTI software interrupt event register volatile unsigned int RPR1; // EXTI rising edge pending registervolatile unsigned int FPR1; // EXTI falling edge pending registervolatile unsigned int TZENR1; // EXTI TrustZone enable registervolatile unsigned int RES1[2]; volatile unsigned int RTSR2; // EXTI rising trigger selection registervolatile unsigned int FTSR2; // EXTI falling trigger selection registervolatile unsigned int SWIER2; // EXTI software interrupt event registervolatile unsigned int RPR2; // EXTI rising edge pending registervolatile unsigned int FPR2; // EXTI falling edge pending registervolatile unsigned int TZENR2; // EXTI TrustZone enable registervolatile unsigned int RES2[2];volatile unsigned int RTSR3; // EXTI rising trigger selection registervolatile unsigned int FTSR3; // EXTI falling trigger selection registervolatile unsigned int SWIER3; // EXTI software interrupt event registervolatile unsigned int RPR3; // EXTI rising edge pending registervolatile unsigned int FPR3; // EXTI falling edge pending registervolatile unsigned int TZENR3; // EXTI TrustZone enable registervolatile unsigned int RES3[2];volatile unsigned int EXTICR1; // EXTI external interrupt selection register 1volatile unsigned int EXTICR2; // EXTI external interrupt selection register 2 volatile unsigned int EXTICR3; // EXTI external interrupt selection register 3 volatile unsigned int EXTICR4; // EXTI external interrupt selection register 4 volatile unsigned int RES4[4];volatile unsigned int C1IMR1; // EXTI CPU1 wakeup with interrupt mask registervolatile unsigned int C1EMR1; // EXTI CPU1 wakeup with event mask registervolatile unsigned int RES5[2];volatile unsigned int C1IMR2; // EXTI CPU1 wakeup with interrupt mask registervolatile unsigned int C1EMR2; // EXTI CPU1 wakeup with event mask registervolatile unsigned int RES6[2];volatile unsigned int C1IMR3; // EXTI CPU1 wakeup with interrupt mask register volatile unsigned int C1EMR3; // EXTI CPU1 wakeup with event mask register volatile unsigned int RES7[6];volatile unsigned int C2IMR1; // EXTI CPU2 wakeup with interrupt mask registervolatile unsigned int C2EMR1; // EXTI CPU2 wakeup with event mask registervolatile unsigned int RES8[2];volatile unsigned int C2IMR2; // EXTI CPU2 wakeup with interrupt mask registervolatile unsigned int C2EMR2; // EXTI CPU2 wakeup with event mask registervolatile unsigned int RES9[2];volatile unsigned int C2IMR3; // EXTI CPU2 wakeup with interrupt mask register volatile unsigned int C2EMR3; // EXTI CPU2 wakeup with event mask register volatile unsigned int RES10[2]; }exti_t;#define EXTI ((exti_t*)0x5000D000)#endif //__STM32MP1XX_EXTI_H__stm32mp1xx_gic.h: #ifndef __STM32MP1XX_GIC_H__ #define __STM32MP1XX_GIC_H__ typedef struct {volatile unsigned int CTRL;volatile unsigned int TYPER;volatile unsigned int IIDR;volatile unsigned int RES1[29];volatile unsigned int IGROUPR[9];volatile unsigned int RES2[23];volatile unsigned int ISENABLER[9];volatile unsigned int RES3[23];volatile unsigned int ICENABLER[9];volatile unsigned int RES4[23];volatile unsigned int ISPENDR[9];volatile unsigned int RES5[23];volatile unsigned int ICPENDR[9];volatile unsigned int RES6[23];volatile unsigned int ISACTIVER[9];volatile unsigned int RES7[23];volatile unsigned int ICACTIVER[9];volatile unsigned int RES8[23];volatile unsigned int IPRIORITYR[72];volatile unsigned int RES9[184];volatile unsigned int ITARGETSR[72];volatile unsigned int RES10[184]; volatile unsigned int ICFGR[18];volatile unsigned int RES11[46];}gicd_t; #define GICD ((gicd_t*)0xA0021000)typedef struct {volatile unsigned int CTRL;volatile unsigned int PMR;volatile unsigned int BRR;volatile unsigned int IAR;volatile unsigned int EOIR;volatile unsigned int RPR;volatile unsigned int HPPIR;volatile unsigned int ABPR;volatile unsigned int AIAR;volatile unsigned int AEOIR;volatile unsigned int AHPPIR;volatile unsigned int RES1[41];volatile unsigned int APR0;volatile unsigned int RES2[3];volatile unsigned int NSAPR0;volatile unsigned int RES3[6];volatile unsigned int IIDR;volatile unsigned int RES4[960];volatile unsigned int DIRDIR;}gicc_t; #define GICC ((gicc_t*)0xA0022000) #endif // __STM32MP1XX_GIC_H__uart_led.h: #ifndef __UART_LED_H__ #define __UART_LED_H__#include stm32mp1xx_rcc.h #include stm32mp1xx_gpio.h #include stm32mp1xx_uart.h #include stm32mp1xx_exti.h #include stm32mp1xx_gic.h//重写strcmp函数 int strcmp(const char *s1, const char *s2);//对LED灯初始化 void hal_led_init();//对GPIO引脚初始化函数 void hal_gpio_init(gpio_t* gpiox, gpio_init_t* init, unsigned int pin);//对GPIO引脚写操作函数 void hal_led_gpio_write(gpio_t* gpiox, unsigned int pin, gpio_status_t state);//初始化串口 void hal_uart_init();//发送一个字节 void uart_put_char(const char str);//发送一个字符串 void uart_put_string(const char* str);//接受一个字符 char uart_get_char();//接收一个字符串 char* uart_get_string();#endifuart_led.c: #include uart_led.hextern void printf(const char *fmt, ...); extern void delay_ms(int ms);//重写strcmp函数 int strcmp(const char *s1, const char *s2) {int t 0;while(*s1 || *s2){if(*s1 ! *s2){t *s1 - *s2;return t;}*s1 ;*s2 ;}return t; }//对LED灯初始化 void hal_led_init() {//RCC时钟初始化RCC-MP_AHB4ENSETR | (0x3 4);//结构体初始化gpio_init_t init {Output, Push_pull, Low_speed, No_up_down};//GPIO初始化hal_gpio_init(GPIOE, init, GPIO_PIN_10);hal_gpio_init(GPIOF, init, GPIO_PIN_10);hal_gpio_init(GPIOE, init, GPIO_PIN_8); }//对GPIO引脚初始化函数 void hal_gpio_init(gpio_t* gpiox, gpio_init_t* init, unsigned int pin) {//GPIO输出模式初始化gpiox-MODER (~(0x3 (pin * 2)));gpiox-MODER | (init-moder (pin * 2));//GPIO输出类型初始化gpiox-OTYPER (~(0x1 pin));gpiox-OTYPER | (init-otyper pin);//GPIO输出速度初始化gpiox-OSPEEDR (~(0x3 (pin * 2)));gpiox-OSPEEDR | (init-ospeedr (pin * 2));//GPIO是否需要上下拉gpiox-PUPDR (~(0x3 (pin * 2)));gpiox-PUPDR | (init-pupdr (pin * 2)); }//对GPIO引脚写操作函数 void hal_led_gpio_write(gpio_t* gpiox, unsigned int pin, gpio_status_t state) {if(gpio_reset_t state)gpiox-ODR (~(0x1 pin));elsegpiox-ODR | (0x1 pin); }//初始化串口 void hal_uart_init() {/*********RCC章节初始化********/RCC-MP_AHB4ENSETR | (0x1 1);RCC-MP_AHB4ENSETR | (0x1 6);RCC-MP_APB1ENSETR | (0x1 16);/*********GPIO章节初始化*******/gpio_init_t init {0};init.moder Alternate; //设置GPIO模式为复用模式hal_gpio_init(GPIOB, init, GPIO_PIN_2);hal_gpio_init(GPIOG, init, GPIO_PIN_11);GPIOB-MODER | (0x1 5);GPIOB-AFRL (~(0xF 8));GPIOB-AFRL | (0x1 11);GPIOG-MODER | (0x1 23);GPIOG-AFRH (~(0xF 12));GPIOG-AFRH | (0x3 13);/*********UART章节初始化*******/if(USART4-CR1 (0x1 0)) //判断UE位是否为0 { delay_ms(500); USART4-CR1 (~(0x1 0)); } USART4-CR1 (~(0x1 28)); //设置数据位宽度为8位USART4-CR1 (~(0x1 12)); USART4-CR1 (~(0x1 15)); //设置串口采样率 USART4-CR1 (~(0x1 10)); //设置无奇偶校验位 USART4-CR2 (~(0x3 12)); //设置串口1位停止位 USART4-PRESC (~(0x3 3)); //设置串口不分频 USART4-BRR | 0x22B; //设置串口波特率 USART4-CR1 | (0x1 2); //串口发送器使能 USART4-CR1 | (0x1 3); //串口接收器使能 USART4-CR1 | (0x1 0); //串口使能 }//发送一个字节 void uart_put_char(const char str) {//1.判断发送数据寄存器是否为空为空才可以发送下一个字节//ISR[7] //读0发送数据寄存器满需要等待//读1发送数据寄存器空才可以发送下一个字节数据while(!(USART4-ISR (0x1 7)));//2.将要发送的字符写到发送数据寄存器中USART4-TDR str;//3.判断发送数据是否完成 ISR[6]while(!(USART4-ISR (0x1 6))); }//发送一个字符串 void uart_put_string(const char* str) {//判断是否为\0一个字符一个字符发for(int i 0; str[i] ! \0; i){uart_put_char(str[i]); }printf(\n); }//接受一个字符 char uart_get_char() {char ch;//1.判断接收数据寄存器是否有数据可读 ISR[5]while(!(USART4-ISR (0x1 5)));//2.将接收到的数据读出来ch USART4-RDR;return ch; }char buff[50] {0}; //接收一个字符串 char* uart_get_string() {int i 0;//for循环//当键盘的回车键\r按下之后字符串输入完成for(i 0; i 48; i){buff[i] uart_get_char(); if(buff[i] \r)break;uart_put_char(buff[i]);}//字符串补\0buff[i] \0;printf(\n);//对接收到的字符串进行判断if(strcmp(buff,led1on) 0){hal_led_gpio_write(GPIOE, GPIO_PIN_10, gpio_set_t);return LED1_ON success;}else if(strcmp(buff,led1off) 0){hal_led_gpio_write(GPIOE, GPIO_PIN_10, gpio_reset_t);return LED1_OFF success;}else if(strcmp(buff,led2on) 0){hal_led_gpio_write(GPIOF, GPIO_PIN_10, gpio_set_t);return LED2_ON success;}else if(strcmp(buff,led2off) 0){hal_led_gpio_write(GPIOF, GPIO_PIN_10, gpio_reset_t);return LED2_OFF success;}else if(strcmp(buff,led3on) 0){hal_led_gpio_write(GPIOE, GPIO_PIN_8, gpio_set_t);return LED3_ON success;}else if(strcmp(buff,led3off) 0){hal_led_gpio_write(GPIOE, GPIO_PIN_8, gpio_reset_t);return LED3_OFF success;}return invalid instruction!; }main.c: #include uart_led.hextern 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_led_init(); //LED灯初始化hal_uart_init(); //串口初始化while(1){uart_put_string(uart_get_string());}return 0; }测试结果如下  作业二 实验现象如下
http://www.yayakq.cn/news/4956/

相关文章:

  • 做外贸推广的网站有哪些seo综合查询工具有什么功能
  • phpcmsv9手机网站源码中山网站改版
  • 广西城乡建设部网站网站开发有前途吗
  • wordpress站点是什么意思乐彩网站源码网站建设
  • 企业电子网站建设成都网站seo外包
  • 网站建设收费分几次做招聘信息的网站
  • 网站建设论坛报告升学宴邀请函电子版免费制作软件
  • 网站建设div可拖拽布局街区网站建设的意义
  • 做后期的网站微信公众号是干什么用的
  • 网站建设答案无锡网站建设唯唯网络
  • 北京网站建设询q479185700上快电商项目策划书
  • 金融培训网站源码个人网站页面设计需要那些步骤
  • 网站建设公司海南有一套源码做网站还差什么
  • 网站开发吗和APP软件一样吗郑州网站设计制作哪家好
  • 门户网站搭建方案活动拍摄
  • 旅行社网站建设需求分析app 展示网站
  • 企业应该找什么样的网站建设公司昆明网建
  • 重庆中国建设银行招聘信息网站辽阳专业建设网站公司
  • 泉州网站设计师招聘wordpress阅读插件
  • 在ps中做网站首页的尺寸书签制作 小学生的手工书签
  • 网站效果图怎么做html网站标题怎么做的
  • .net网站开发模板深圳市光明区官网
  • 上海百度网站建设企业所得税是5%还是25%
  • 天辰建设网站公司顺通建设集团有限公司 网站
  • 做网站优化公司报价wordpress插件打包下载
  • 临沂地区建站网站网站开发 相册
  • 找效果图的网站哪个好网站建设单位有哪些方面
  • 网站怎么申请怎么注册网站的建设维护及管理制度
  • 怎么建设一个音乐网站广告投放形式有哪些
  • 中国建设银行app官方下载搜索引擎网站推广如何优化