你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STEVAL-STWINKT1B测评】2、利用ST板模板快速创建工程

[复制链接]
奇迹 发布时间:2024-10-18 13:29

很多时候我们都是比着原理图一点点去配置IO,配置外设,这样很容易出错,也很麻烦,对原理图研究的稍微有一点不仔细就会出错。 ST对自己的做了很好的支持,在创建工程的时候是可以直接选择对应的开发板创建,这样省下来配置引脚外设的功夫。

本篇我们将使用STM32CubeMX提供的板模板创建一个STEVAL-STWINKT1B的代码工程,并完成串口打印的功能。

点击ACCESS TO BOARD SELECTOR,选择板模板

微信截图_20241018134026.png

选择STEVAL-STWINKT1B后,点击Start Project新建工程

微信截图_20241018134147.png

点击yes,初始化外设

微信截图_20241018134201.png

可以看到IO与外设部分都已经按照板卡连接,默认配置好了

微信截图_20241018134315.png

点开时钟一栏也是一样

微信截图_20241018134221.png

配置一下代码生成方式

微信截图_20241018134407.png

配置一下工程设置,点击GENERATE CODE生成代码

微信截图_20241018134355.png

查看原理图,发现串口2连接到STLink上,可以通过这里进行打印

微信截图_20241018140941.png

点击配置,使能微库设置

微信截图_20241018140809.png

添加下面的代码,实现串口2的重映射。

#include "stdio.h"
#ifdef __GNUC__
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#endif

PUTCHAR_PROTOTYPE
{
  HAL_UART_Transmit(&huart2,(uint8_t *)&ch,1,0xFFFF);
  return ch;
}

修改代码,增加打印内容

int main(void)
{

  /* USER CODE BEGIN 1 */

  /* 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 peripherals common clocks */
  PeriphCommonClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_ADC1_Init();
  MX_DAC1_Init();
  MX_DFSDM1_Init();
  MX_I2C2_SMBUS_Init();
  MX_I2C3_Init();
  MX_I2C4_Init();
  MX_LTDC_Init();
  MX_RTC_Init();
  MX_SAI1_Init();
  MX_SDMMC1_SD_Init();
  MX_SPI1_Init();
  MX_SPI2_Init();
  MX_SPI3_Init();
  MX_TIM2_Init();
  MX_TIM5_Init();
  MX_USART2_UART_Init();
  MX_USART3_UART_Init();
  MX_USB_OTG_FS_PCD_Init();
  /* USER CODE BEGIN 2 */
  printf("STEVAL-STWINKT1B");
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

由于MX_SDMMC1_SD_Init配置是需要插入内存卡才能进行的,如果没有内存卡的话需要把这个初始化注释掉,具体代码如下

int main(void)
{

  /* USER CODE BEGIN 1 */

  /* 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 peripherals common clocks */
  PeriphCommonClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_DMA_Init();
  MX_ADC1_Init();
  MX_DAC1_Init();
  MX_DFSDM1_Init();
  MX_I2C2_SMBUS_Init();
  MX_I2C3_Init();
  MX_I2C4_Init();
  MX_LTDC_Init();
  MX_RTC_Init();
  MX_SAI1_Init();
//  MX_SDMMC1_SD_Init();
  MX_SPI1_Init();
  MX_SPI2_Init();
  MX_SPI3_Init();
  MX_TIM2_Init();
  MX_TIM5_Init();
  MX_USART2_UART_Init();
  MX_USART3_UART_Init();
  MX_USB_OTG_FS_PCD_Init();
  /* USER CODE BEGIN 2 */
  printf("STEVAL-STWINKT1B");
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

打开串口即可看到效果。

微信截图_20241018135720.png

收藏 评论0 发布时间:2024-10-18 13:29

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版