|
1,标准例程-寄存器版本
2,标准例程-HAL库版本
正点原子的程序用了以上两种,就用实验1 跑马灯实验,更改LED管脚到PG13,14(Discovery上的LED接这两个),再更改target,如下:
led.c
- void LED_Init(void)
- {
- GPIO_InitTypeDef GPIO_Initure;
- __HAL_RCC_GPIOB_CLK_ENABLE(); //¿ªÆôGPIOBʱÖÓ
-
- GPIO_Initure.Pin=GPIO_PIN_13|GPIO_PIN_14; //PB1,0
- GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //ÍÆÍìÊä³ö
- GPIO_Initure.Pull=GPIO_PULLUP; //ÉÏÀ
- GPIO_Initure.Speed=GPIO_SPEED_HIGH; //¸ßËÙ
- HAL_GPIO_Init(GPIOG,&GPIO_Initure);
-
- HAL_GPIO_WritePin(GPIOG,GPIO_PIN_13,GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOG,GPIO_PIN_14,GPIO_PIN_SET);
- }
复制代码
main.c
- int main(void)
- {
- HAL_Init(); //³õʼ»¯HAL¿â
- Stm32_Clock_Init(360,25,2,8); //ÉèÖÃʱÖÓ,180Mhz
- delay_init(180); //³õʼ»¯ÑÓʱº¯Êý
- LED_Init(); //³õʼ»¯LED
- while(1)
- {
- HAL_GPIO_WritePin(GPIOG,GPIO_PIN_13,GPIO_PIN_RESET); //LED0¶ÔÓ¦Òý½ÅPB1ÀµÍ£¬ÁÁ£¬µÈͬÓÚLED0(0)
- HAL_GPIO_WritePin(GPIOG,GPIO_PIN_14,GPIO_PIN_SET); //LED1¶ÔÓ¦Òý½ÅPB0À¸ß£¬Ã𣬵ÈͬÓÚLED1(1)
- delay_ms(500); //ÑÓʱ500ms
- HAL_GPIO_WritePin(GPIOG,GPIO_PIN_13,GPIO_PIN_SET); //LED0¶ÔÓ¦Òý½ÅPB1À¸ß£¬Ã𣬵ÈͬÓÚLED0(1)
- HAL_GPIO_WritePin(GPIOG,GPIO_PIN_14,GPIO_PIN_RESET); //LED1¶ÔÓ¦Òý½ÅPB0ÀµÍ£¬ÁÁ£¬µÈͬÓÚLED1(0)
- delay_ms(500); //ÑÓʱ500ms
- }
- }
复制代码
烧录OK,仿真程序是运行的,就是LED没反应。不知为何 |
|