CubeIDE_01配置开发环境

简介

配置完成最基本的项目所需配置,便于其他项目建立,调试(超级长超级详细版)

过程

界面配置

  • 新建项目
    在这里插入图片描述
  • 在一处输入芯片型号或者在二处找到对应的芯片型号,在三处单击对应芯片后单击右下角“下一步”

在这里插入图片描述

  • 输入对应过程文件名,选择相应Options后单击完成
    ](https://img-blog.csdnimg.cn/20210223212814909.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NzQ0NzE3OQ==,size_16,color_FFFFFF,t_70)

  • 打开RCC选项,启用HSE及HSI

在这里插入图片描述

  • 配置时钟树,单击上面的“Clock Configuration”后配置对应时钟
    在这里插入图片描述

  • 回到“Pinout&Configuration,单击TIM2,配置定时器2
    在这里插入图片描述

  • 同理,配置定时器5
    在这里插入图片描述

  • 配置USART1

在这里插入图片描述

  • 设置串口对应参数(一般不需要修改)

在这里插入图片描述

  • 设置对应的中断优先级
    在这里插入图片描述
  • 设置某一个串口作为输出
    在右侧的芯片,左键单击对应的引脚后选择相应的功能
    在这里插入图片描述

选择左侧的GPIO选项,设置引脚输出参数
在这里插入图片描述

  • 单击Project Manger进行代码生成设置

在这里插入图片描述

  • 点击该按键生成对应代码
    在这里插入图片描述

相应代码添加

注意:添加代码需要在对应区域添加

/* USER CODE BEGIN 2 */


  /* USER CODE END 2 */

否则添加的代码会被删除,因此在图形化界面设置的参数大部分(或者说全部)无法在代码区域更改,只能回到界面重新设置然后重新生成代码

以下为需要添加的代码块,添加位置可根据用户喜好,,,

重定向printf语句

/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */
/* USER CODE BEGIN 0 */
#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(&huart1 , (uint8_t *)&ch, 1, 0xFFFF);
    return ch;
}

/* USER CODE END 0 */

打开定时器中断

 /* USER CODE BEGIN 2 */
  HAL_TIM_Base_Start_IT(&htim2);
  HAL_TIM_Base_Start_IT(&htim5);
  /* USER CODE END 2 */

自添加定时语句

  • 在tim.c文件相关位置
/* USER CODE BEGIN 0 */
static  int  s_i2msFlag  = 0;    //将2ms标志位的值设置为FALSE
static  int  s_i1secFlag = 0;    //将1s标志位的值设置为FALSE

/* USER CODE END 0 */
/* USER CODE BEGIN 1 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{

	if(htim==(&htim2))//实现2ms定时器
	{
      static  int s_iCnt2 = 0;           //定义一个静态变量s_iCnt2作为2ms计数器
	  s_iCnt2++;             //2ms计数器的计数值加1

	  if(s_iCnt2 >= 2)       //2ms计数器的计数值大于或等于2
	  {
	    s_iCnt2 = 0;       //重置2ms计数器的计数值为0
	    s_i2msFlag = 1;    //将2ms标志位的值设置为TRUE
	  }
	}


	if(htim==(&htim5))//实现10ms定时器
		{
	      static  int s_iCnt1000 = 0;
	      s_iCnt1000++;

		  if(s_iCnt1000 >= 1000)
		  {
			  s_iCnt1000 = 0;
		    s_i1secFlag = 1;
		  }
		}
}


int  Get2msFlag(void)
{
  return(s_i2msFlag);     //返回2ms标志位的值ֵ
}

void  Clr2msFlag(void)
{
  s_i2msFlag = 0;     //将2ms标志位的值设置为FALSE
}

int  Get1SecFlag(void)
{
  return(s_i1secFlag);   
  }

void  Clr1SecFlag(void)
{
	s_i1secFlag = 0;     
}

/* USER CODE END 1 */
  • 在main.c文件相关位置
/* USER CODE BEGIN 0 */


static  void  Proc2msTask(void)
{
  if(Get2msFlag())  //判断2ms标志状态
  {

    Clr2msFlag();   //清除2ms标志
  }
}

static  void  Proc1SecTask(void)
{

 if(Get1SecFlag())    //判断1s标志状态
 {
	      printf("This is the first STM32G474 Project, by KZ\r\n");

    Clr1SecFlag();  //清除1s标志
  }
}

/* USER CODE END 0 */



/* USER CODE BEGIN 2 */
  HAL_TIM_Base_Start_IT(&htim2);
  HAL_TIM_Base_Start_IT(&htim5);

  /* USER CODE END 2 */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  Proc2msTask();
	  Proc1SecTask();
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */

  }
  /* USER CODE END 3 */
}

编译及烧录

在这里插入图片描述

白色背景下编译按钮:
在这里插入图片描述
烧录在连接后直接点击确定
在这里插入图片描述

结果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值