STM32CubeMX与Keil联动——看门狗IWDG

目录

一、STM32CubeMX下的图形化配置

1、配置调试下载接口、时钟源接口

2、配置看门狗外设

3、配置GPIO

4、配置时钟树

4、工程基本设置

5、生成代码工程

二、Keil下的代码编辑

1、编辑main.c文件

三、烧录运行,观察试验现象


功能说明:芯片复位时,翻转一次LED亮灭状态,之后进入死循环进行喂狗。

一、STM32CubeMX下的图形化配置

本文以STM32F103ZET6为例。

1、配置调试下载接口、时钟源接口

开启Debug功能
开启外部时钟源​​​​​​

2、配置看门狗外设

如图配置看门狗,定时为1秒。

  • 时钟源 f:40KHz(在下文时钟树中可以获取到该信息)
  • 预分频系数 p:16
  • 递减为零后的重载数值 v:2499
  • 看门狗实际定时:\frac{p}{f}*(v+1)=\frac{16}{40*10^{3}}*(2500)=1s
配置看门狗

3、配置GPIO

为了展示有无看门狗的现象,这里额外增加一颗LED的控制。

  • 高电平 = 熄灭LED
  • 低电平 = 点亮LED
开启PB14以控制LED

4、配置时钟树

外部输入时钟频率与板卡上的晶振保持一致,依次打开图示的路径选项

4、工程基本设置

代码编辑工具设置为Keil
勾选这两个选项(只拷贝用到的外设的库文件、将代码分开成为.h和.c)

5、生成代码工程

二、Keil下的代码编辑

1、编辑main.c文件

main()中,在死循环外边添加LED翻转函数,在死循环内添加喂狗函数。

/**
  * @brief  The application entry point.
  * @retval int
  */
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();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_IWDG_Init();
  /* USER CODE BEGIN 2 */
  HAL_Delay(900);  // 延时900ms
  HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin);  // 翻转LED
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    HAL_IWDG_Refresh(&hiwdg);  // 喂狗
    /* USER CODE END WHILE */

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

三、烧录运行,观察试验现象

  • 取消HAL_IWDG_Refresh(&hiwdg);的注释,能够在1秒内及时喂狗,芯片不复位,LED只翻转一次。
  • 打开HAL_IWDG_Refresh(&hiwdg);的注释,无法在1秒内及时喂狗,芯片常复位,LED不间断翻转。
不喂狗的试验现象,达到预期目标
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 您好,要在STM32CubeMX中生成Keil5项目,请按照以下步骤操作: 1. 打开STM32CubeMX软件,选择您的STM32芯片型号。 2. 在“Project Manager”选项卡中,选择“Toolchain / IDE”选项。 3. 在“Toolchain / IDE”选项中,选择“Keil MDK-ARM”选项,并选择您的Keil安装路径。 4. 点击“Generate Code”按钮,STM32CubeMX将自动生成Keil5项目。 5. 打开Keil5软件,选择“File”菜单中的“Open Project”,并选择STM32CubeMX生成的Keil5项目文件。 6. 在Keil5中编译和调试您的STM32项目。 希望这些步骤能够帮助您生成Keil5项目。如果您有任何疑问,请随时联系我们。 ### 回答2: STM32CubeMX是一款支持多种开发环境、可视化配置STM32微控制器的软件,可以大大简化STM32芯片的初始化和配置工作,提高了开发效率。 在STM32CubeMX中生成 Keil5 工程步骤如下: 1.新建工程。 在STM32CubeMX中,首先需要新建一个工程。进入STM32CubeMX界面,选择New Project。在弹出的框中,选择要使用的芯片型号。 2.配置芯片外设和时钟。 在新建工程后,需要配置芯片外设和时钟。首先打开对应的“Pinout”选项卡,选择和芯片相应的引脚,分配到相应的功能(例如USART、SPI或I2C等)。接着打开“Clock Configuration”选项卡配置时钟。可通过PLL、HSE和HSI等不同的时钟源配置系统时钟。 3.生成代码。 配置外设和时钟后,在STM32CubeMX界面打开“Project Manager”选项卡,选择 “Toolchain/IDE”选项。 这里选择Keil5,并在弹出的框中设置ARM Compiler,然后单击“Generate Code”按钮生成Keil5所需的代码文件。 4.在Keil5中导入CubeMX生成的工程。 进入Keil5,选择“Project”>>“Open Project”打开CubeMX生成的Keil5工程所在的文件夹,选择“Project.uvprojx”打开工程文件,即可导入工程。 5.编译和调试。 在导入工程后,即可使用Keil5熟悉的编译和调试功能,各种调试器和仿真器也可以直接在Keil5中配置和使用。 总体来说,使用STM32CubeMX生成Keil5工程可以大大简化STM32芯片的初始化和配置工作,使得开发人员可以更专注于开发新的应用程序功能。 ### 回答3: STM32CubeMX是一款免费的软件工具,它可以帮助用户自动生成基于STM32微控制器的初始化代码,以及集成开发环境(IDE)配置文件,包括Keil的IDE环境。Keil是一款非常知名的C语言IDE,它支持多种嵌入式微控制器系统的开发,包括STM32系列。STM32CubeMX是一款免费的软件工具,它可以帮助用户自动生成基于STM32微控制器的初始化代码,以及集成开发环境(IDE)配置文件,包括Keil的IDE环境。Keil是一款非常知名的C语言IDE,它支持多种嵌入式微控制器系统的开发,包括STM32系列。 生成Keil5的步骤如下: 1. 打开STM32CubeMX软件,创建一个新的STM32工程。根据需要选择正确的工程类型和STM32微控制器系列。 2. 进入“Project Manager”选项卡,设置工程存储路径。 3. 如果需要,添加一些需要使用的扩展库,并选择要使用的操作系统。 4. 在“Pinout & Configuration”选项卡中针对 GPIO、ADC、PWM 和其他外设进行配置配置结束后,单击“Generate Code”以生成HAL库代码和Keil5 IDE项目文件。 5. 单击“Project”,选择“Export” -> “Generate Code” -> “Keil”以打开Keil5 IDE的STM32CubeMX项目文件。 6. 在Keil5中,可以为该项目配置需要的信息,如编译器、下载器、调试器等。 7. 单击“Build”以编译STM32的代码,并使用下载器和调试器调试应用程序。 总之,STM32CubeMXKeil5是非常有用的嵌入式技术工具,它们可以帮助开发者提高开发效率和开发质量。使用它们可以方便快捷地生成STM32代码并将其集成到Keil5 IDE中,为STM32开发带来便利。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

觅道無涯-千知

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值