|
全球首發,使用hal庫Proteus 仿真stm32f103實現跑馬燈
由于3.5的庫,Proteus 支持不太好,開始轉向hal庫。
stm32.jpg (72.75 KB, 下載次數: 58)
下載附件
2018-8-12 20:14 上傳
- #include "led.h"
- void LED_Init(void)
- {
- GPIO_InitTypeDef GPIO_Initure;
- __HAL_RCC_GPIOA_CLK_ENABLE(); //開啟GPIOA時鐘
- __HAL_RCC_GPIOD_CLK_ENABLE(); //開啟GPIOD時鐘
-
- GPIO_Initure.Pin=GPIO_PIN_8; //PB5
- GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP; //推挽輸出
- GPIO_Initure.Pull=GPIO_PULLUP; //上拉
- GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速
- HAL_GPIO_Init(GPIOA,&GPIO_Initure);
- GPIO_Initure.Pin=GPIO_PIN_2; //PE5
- HAL_GPIO_Init(GPIOD,&GPIO_Initure);
-
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_SET); //PA8置1,默認初始化后燈滅
- HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET); //PD2置1,默認初始化后燈滅
- }
復制代碼- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- void SystemClock_Config(void);
- void Error_Handler(void);
- int main(void)
- {
- HAL_Init(); //初始化HAL庫
- //Stm32_Clock_Init(RCC_PLL_MUL9); //設置時鐘,72M
- SystemClock_Config();
- delay_init(72); //初始化延時函數
- LED_Init(); //初始化LED
- while(1)
- {
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_RESET); //LED0對應引腳PB5拉低,亮,等同于LED0(0)
- HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET); //LED1對應引腳PE5拉高,滅,等同于LED1(1)
- HAL_Delay(1000); //延時500ms
- HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,GPIO_PIN_SET); //LED0對應引腳PB5拉高,滅,等同于LED0(1)
- HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET); //LED1對應引腳PE5拉低,亮,等同于LED1(0)
- HAL_Delay(1000);
- }
- }
- void SystemClock_Config(void)
- {
- RCC_OscInitTypeDef RCC_OscInitStruct;
- RCC_ClkInitTypeDef RCC_ClkInitStruct;
- /**Initializes the CPU, AHB and APB busses clocks
- */
- RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
- RCC_OscInitStruct.HSIState = RCC_HSI_ON;
- RCC_OscInitStruct.HSICalibrationValue = 16;
- RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
- if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
- {
- Error_Handler();
- }
- /**Initializes the CPU, AHB and APB busses clocks
- */
- RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
- |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
- RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI;
- RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
- RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
- RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
- if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)
- {
- Error_Handler();
- }
- /**Configure the Systick interrupt time
- */
- HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000);
- /**Configure the Systick
- */
- HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);
- /* SysTick_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);
- }
- void Error_Handler(void)
- {
- /* USER CODE BEGIN Error_Handler */
- /* User can add his own implementation to report the HAL error return state */
- while(1)
- {
- }
- /* USER CODE END Error_Handler */
- }
復制代碼
|
-
-
1跑馬燈.zip
2018-8-12 20:15 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
761.55 KB, 下載次數: 106, 下載積分: 黑幣 -5
|