2026/5/21 18:17:30
网站建设
项目流程
网站英文版建设,温州网站建设公司排名,东莞网络营销网络推广软件,无法解析服务器域名这两天尝试了一下直接对寄存器操作控制单片机#xff0c;在感觉对他的底层工作又有了更深的了解
下面是一些代码对比
#include BUZZ.h//void BEEP_ON(void)
//{
// GPIOG-ODR | GPIO_ODR_ODR12;
//}
//
//void BEEP_OFF(void )
//{
// GPIOG-ODR 在感觉对他的底层工作又有了更深的了解下面是一些代码对比#include BUZZ.h //void BEEP_ON(void) //{ // GPIOG-ODR | GPIO_ODR_ODR12; //} // //void BEEP_OFF(void ) //{ // GPIOG-ODR ~GPIO_ODR_ODR12; //} //void BEEP_tog(void) //{ // // if((GPIOG-IDRGPIO_IDR_IDR12) ! 0) // { // GPIOG-ODR ~GPIO_ODR_ODR12; // // } // else // { // // GPIOG-ODR | GPIO_ODR_ODR12; // } // //} void BEEP_ON(void) { HAL_GPIO_WritePin(GPIOG,GPIO_PIN_12,GPIO_PIN_SET); } void BEEP_OFF(void ) { HAL_GPIO_WritePin(GPIOG,GPIO_PIN_12,GPIO_PIN_RESET); } void BEEP_tog(void) { HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_12); }#include led.h //void led_init(void) //{ // // //配置RCC // RCC-APB2ENR | RCC_APB2ENR_IOPGEN; // //配置GPIO // GPIOG-CRH | GPIO_CRH_MODE14; // GPIOG-CRH ~(GPIO_CRH_CNF14); // GPIOG-CRH | GPIO_CRH_MODE15; // GPIOG-CRH ~(GPIO_CRH_CNF15); // // //} //void led_on(int led_num) //{ // if(14 led_num) // { // GPIOG-ODR | GPIO_ODR_ODR14; // } // // else if(15 led_num) // { // GPIOG-ODR | GPIO_ODR_ODR15; // } //} //void led_off(int led_num) //{ // if(14 led_num) // { // GPIOG-ODR ~GPIO_ODR_ODR14; // } // // else if(15 led_num) // { // GPIOG-ODR ~GPIO_ODR_ODR15; // } //} //void led_togle(int num) //{ // if(14 num) // { // if((GPIOG-IDRGPIO_IDR_IDR14) ! 0) // { // //GPIOG-ODR ~GPIO_ODR_ODR14; // led_off(14); // } // else // { // led_on(14); // //GPIOG-ODR | GPIO_ODR_ODR14; // } // } // // if(15 num) // { // if((GPIOG-IDRGPIO_IDR_IDR15) ! 0) // { // led_off(15); // //GPIOG-ODR ~GPIO_ODR_ODR15; // } // else // { // led_on(15); // //GPIOG-ODR | GPIO_ODR_ODR15; // } // } //} void led_on(int led_num) { if(14 led_num) { HAL_GPIO_WritePin(GPIOG,GPIO_PIN_14,GPIO_PIN_SET); } else if(15 led_num) { HAL_GPIO_WritePin(GPIOG,GPIO_PIN_15,GPIO_PIN_SET); } } void led_off(int led_num) { if(14 led_num) { HAL_GPIO_WritePin(GPIOG,GPIO_PIN_14,GPIO_PIN_RESET); } else if(15 led_num) { HAL_GPIO_WritePin(GPIOG,GPIO_PIN_15,GPIO_PIN_RESET); } } void led_togle(int num) { if(14 num) { HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_14); } if(15 num) { HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_15); } }#include key.h //void key_int(void) //{ // //打开时钟 // RCC-APB2ENR | RCC_APB2ENR_IOPGEN; // // //配置工作模式 mode : 00 cnf: 01 // // GPIOG-CRL ~GPIO_CRL_MODE3; // GPIOG-CRL ~GPIO_CRL_CNF3_1; // GPIOG-CRL | GPIO_CRL_CNF3_0; // // GPIOG-CRL ~GPIO_CRL_MODE4; // GPIOG-CRL ~GPIO_CRL_CNF4_1; // GPIOG-CRL | GPIO_CRL_CNF4_0; // // GPIOG-CRL ~GPIO_CRL_MODE5; // GPIOG-CRL ~GPIO_CRL_CNF5_1; // GPIOG-CRL | GPIO_CRL_CNF5_0; // // // //全部改为上拉输入 // // GPIOG-ODR | GPIO_ODR_ODR3; // GPIOG-ODR | GPIO_ODR_ODR4; // GPIOG-ODR | GPIO_ODR_ODR5; // //} //unsigned int key_scan(void) //{ // unsigned int num 0; // // if((GPIOG-IDRGPIO_IDR_IDR3) 0) // { // Delay_ms(10); // if((GPIOG-IDRGPIO_IDR_IDR3) 0) // { // while((GPIOG-IDRGPIO_IDR_IDR3) 0); // num 1; // } // } // // else if((GPIOG-IDRGPIO_IDR_IDR4) 0) // { // Delay_ms(10); // if((GPIOG-IDRGPIO_IDR_IDR4) 0) // { // while((GPIOG-IDRGPIO_IDR_IDR4) 0); // num 2; // } // } // // if((GPIOG-IDRGPIO_IDR_IDR5) 0) // { // Delay_ms(10); // if((GPIOG-IDRGPIO_IDR_IDR5) 0) // { // while((GPIOG-IDRGPIO_IDR_IDR5) 0); // num 3; // } // } // // return num; //} unsigned int key_scan(void) { unsigned int num 0; if(HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_3) GPIO_PIN_RESET) { HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_3) GPIO_PIN_RESET) { while(HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_3) GPIO_PIN_RESET); num 1; } } else if(HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_4) GPIO_PIN_RESET) { HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_4) GPIO_PIN_RESET) { while(HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_4) GPIO_PIN_RESET); num 2; } } if(HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_5) GPIO_PIN_RESET) { HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_5) GPIO_PIN_RESET) { while(HAL_GPIO_ReadPin(GPIOG,GPIO_PIN_5) GPIO_PIN_RESET); num 3; } } return num; }