[STM32U5]【NUCLEO-U575ZI-Q测评】+点灯

板子到了,我下载了资料,看原理图,一边是STLINK,可是接上没反应。
工程里没有STLINK。我用JLINK的SW方式也下载不进去。
后来,我在ST官网上下载了一个编程软件

用STLINK可以下载。
先下载SDK里的点灯程序试一试,果然好使。
原理图:
 
PC7接的其实是黄灯,上面标的绿灯。
主程序代码:

#include "main.h"



/* Private includes ----------------------------------------------------------*/

/* USER CODE BEGIN Includes */



/* USER CODE END Includes */



/* Private typedef -----------------------------------------------------------*/

/* USER CODE BEGIN PTD */



/* USER CODE END PTD */



/* Private define ------------------------------------------------------------*/

/* USER CODE BEGIN PD */



/* USER CODE END PD */



/* Private macro -------------------------------------------------------------*/

/* USER CODE BEGIN PM */



/* USER CODE END PM */



/* Private variables ---------------------------------------------------------*/



/* USER CODE BEGIN PV */

static GPIO_InitTypeDef  GPIO_InitStruct;



/* USER CODE END PV */



/* Private function prototypes -----------------------------------------------*/

void SystemClock_Config(void);

static void SystemPower_Config(void);

static void MX_ICACHE_Init(void);

/* USER CODE BEGIN PFP */



/* USER CODE END PFP */



/* Private user code ---------------------------------------------------------*/

/* USER CODE BEGIN 0 */



/* USER CODE END 0 */



/**

  * [url=home.php?mod=space&uid=247401]@brief[/url]  The application entry point.

  * @retval int

  */

int main(void)

{

  /* USER CODE BEGIN 1 */

  /* STM32U5xx HAL library initialization:

       - Configure the Flash prefetch

       - Configure the Systick to generate an interrupt each 1 msec

       - Set NVIC Group Priority to 3

       - Low Level Initialization

     */

  /* USER CODE END 1 */



  /* MCU Configuration--------------------------------------------------------*/



  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */

  HAL_Init();



  /* USER CODE BEGIN Init */



  /* USER CODE END Init */



  /* Configure the system clock */

  SystemClock_Config();



  /* Configure the System Power */

  SystemPower_Config();



  /* USER CODE BEGIN SysInit */



  /* USER CODE END SysInit */



  /* Initialize all configured peripherals */

  MX_ICACHE_Init();

  /* USER CODE BEGIN 2 */



   /* -1- Enable GPIO Clock (to be able to program the configuration registers) */

  LED1_GPIO_CLK_ENABLE();

  LED2_GPIO_CLK_ENABLE();



  /* -2- Configure IO in output push-pull mode to drive external LEDs */

  GPIO_InitStruct.Mode  = GPIO_MODE_OUTPUT_PP;

  GPIO_InitStruct.Pull  = GPIO_PULLUP;

  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;



  GPIO_InitStruct.Pin = LED1_PIN;

  HAL_GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStruct);

  GPIO_InitStruct.Pin = LED2_PIN;

  HAL_GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStruct);



  /* USER CODE END 2 */



  /* Infinite loop */

  /* USER CODE BEGIN WHILE */

  while (1)

  {

    /* USER CODE END WHILE */



    /* USER CODE BEGIN 3 */

    HAL_GPIO_TogglePin(LED1_GPIO_PORT, LED1_PIN);

    /* Insert delay 100 ms */

    HAL_Delay(1000);

    HAL_GPIO_TogglePin(LED2_GPIO_PORT, LED2_PIN);

    /* Insert delay 100 ms */

    HAL_Delay(1000);



  }

  /* USER CODE END 3 */

}



/**

  * @brief System Clock Configuration

  * @retval None

  */

void SystemClock_Config(void)

{

  RCC_OscInitTypeDef RCC_OscInitStruct = {0};

  RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};



  /** Configure the main internal regulator output voltage

  */

  if (HAL_PWREx_ControlVoltageScaling(PWR_REGULATOR_VOLTAGE_SCALE1) != HAL_OK)

  {

    Error_Handler();

  }



  /** Initializes the CPU, AHB and APB busses clocks

  */

  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI;

  RCC_OscInitStruct.MSIState = RCC_MSI_ON;

  RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT;

  RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_4;

  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;

  RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_MSI;

  RCC_OscInitStruct.PLL.PLLMBOOST = RCC_PLLMBOOST_DIV1;

  RCC_OscInitStruct.PLL.PLLM = 1;

  RCC_OscInitStruct.PLL.PLLN = 80;

  RCC_OscInitStruct.PLL.PLLP = 2;

  RCC_OscInitStruct.PLL.PLLQ = 2;

  RCC_OscInitStruct.PLL.PLLR = 2;

  RCC_OscInitStruct.PLL.PLLRGE = RCC_PLLVCIRANGE_0;

  RCC_OscInitStruct.PLL.PLLFRACN = 0;

  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_CLOCKTYPE_PCLK3;

  RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;

  RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;

  RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;

  RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

  RCC_ClkInitStruct.APB3CLKDivider = RCC_HCLK_DIV1;



  if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_4) != HAL_OK)

  {

    Error_Handler();

  }

}



/**

  * @brief Power Configuration

  * @retval None

  */

static void SystemPower_Config(void)

{



  /*

   * Disable the internal Pull-Up in Dead Battery pins of UCPD peripheral

   */

  HAL_PWREx_DisableUCPDDeadBattery();



  /*

   * Switch to SMPS regulator instead of LDO

   */

  if (HAL_PWREx_ConfigSupply(PWR_SMPS_SUPPLY) != HAL_OK)

  {

    Error_Handler();

  }

}



/**

  * @brief ICACHE Initialization Function

  * @param None

  * @retval None

  */

static void MX_ICACHE_Init(void)

{



  /* USER CODE BEGIN ICACHE_Init 0 */



  /* USER CODE END ICACHE_Init 0 */



  /* USER CODE BEGIN ICACHE_Init 1 */



  /* USER CODE END ICACHE_Init 1 */



  /** Enable instruction cache in 1-way (direct mapped cache)

  */

  if (HAL_ICACHE_ConfigAssociativityMode(ICACHE_1WAY) != HAL_OK)

  {

    Error_Handler();

  }

  if (HAL_ICACHE_Enable() != HAL_OK)

  {

    Error_Handler();

  }

  /* USER CODE BEGIN ICACHE_Init 2 */



  /* USER CODE END ICACHE_Init 2 */



}



/* USER CODE BEGIN 4 */

/* USER CODE END 4 */



/**

  * @brief  This function is executed in case of error occurrence.

  * @retval None

  */

void Error_Handler(void)

{

  /* USER CODE BEGIN Error_Handler_Debug */

  /* User can add his own implementation to report the HAL error return state */

  while(1) 

  {

  }

  /* USER CODE END Error_Handler_Debug */

}



#ifdef  USE_FULL_ASSERT

/**

  * @brief  Reports the name of the source file and the source line number

  *         where the assert_param error has occurred.

  * @param  file: pointer to the source file name

  * @param  line: assert_param error line source number

  * @retval None

  */

void assert_failed(uint8_t *file, uint32_t line)

{

  /* USER CODE BEGIN 6 */

  /* User can add his own implementation to report the file name and line number,

    ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

  /* Infinite loop */

  while (1)

  {

  }



  /* USER CODE END 6 */

}

#endif /* USE_FULL_ASSERT */

初始化代码:

复制

#define LED1_PIN                                GPIO_PIN_7

#define LED1_GPIO_PORT                          GPIOC

#define LED1_GPIO_CLK_ENABLE()                  __HAL_RCC_GPIOC_CLK_ENABLE()

#define LED1_GPIO_CLK_DISABLE()                 __HAL_RCC_GPIOC_CLK_DISABLE()



#define LED2_PIN                                GPIO_PIN_7

#define LED2_GPIO_PORT                          GPIOB

#define LED2_GPIO_CLK_ENABLE()                  __HAL_RCC_GPIOB_CLK_ENABLE()

#define LED2_GPIO_CLK_DISABLE()                 __HAL_RCC_GPIOB_CLK_DISABLE()

烧写软件界面:

效果图:
 
---------------------
作者:比神乐
链接:https://bbs.21ic.com/icview-3284246-1-1.html
来源:21ic.com
此文章已获得原创/原创奖标签,著作权归21ic所有,任何人未经允许禁止转载。 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值