单片机型号:STM32F070F6P6
本文介绍将看门狗驱动程序移植到自己工程中的方法,本项目使用的是独立看门狗IWDG。
1、在STM32CubeMX中使能看门狗,如下图所示。
2、查看看门狗时钟。
3、对看门狗进行设置,这里主要的是设置IWDG down-counter reload value。IWDG counter clock prescaler为分频系数,我现在项目设置的IWDG的时钟是40KHz,所以分频后为40000/64=625Hz,我先在项目需要使用5秒的看门狗,则625*5=3125,就是IWDG down-counter reload value的数值。
4、在自己的工程中引入stm32f0xx_hal_iwdg.c驱动程序。
5、对stm32f0xx_hal_conf.h文件进行设置,使能功能宏HAL_IWDG_MODULE_ENABLED 。
6、在工程中建立iwdg.cpp和iwdg.h文件。
7、拷贝下列程序到iwdg.h中。
#ifndef IWDG_H_
#define IWDG_H_
#ifdef __cplusplus
extern "C"{
class CIwdg
{
public:
IWDG_HandleTypeDef hIwdg;
public:
CIwdg(void);
void Refresh(void);
};
}
#endif
#endif
8、拷贝下列程序到iwdg.cpp中。
#include "include.h"
CIwdg::CIwdg(void)
{
this->hIwdg.Instance = IWDG;
this->hIwdg.Init.Prescaler = IWDG_PRESCALER_64;
this->hIwdg.Init.Window = 4095;
this->hIwdg.Init.Reload = 3125;
if (HAL_IWDG_Init(&this->hIwdg) != HAL_OK)
{
Target.ErrorHandler(__FILE__, __LINE__);
}
}
void CIwdg::Refresh(void)
{
HAL_IWDG_Refresh(&this->hIwdg);
}
9、至此,移植完成,调用Refresh成员函数进行喂狗即可。
关键字:STM32 看门狗 驱动程序 移植
引用地址:
STM32开发笔记45:看门狗驱动程序的移植
推荐阅读最新更新时间:2024-11-12 13:43
QWT移植到嵌入式linux步骤
注意:安装QWT之前要确保QT已经安装完成。包括X86和ARM版本QT 编译X86下的QWT 1.设置环境变量 export PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-x86/bin/:$PATH 2.解压QWT源码 tar -jxvf qwt-5.2.0.tar.bz2 3.重命名该文件夹 mv qwt-5.2.0 qwt-5.2.0-x86 4.执行qmake 5.执行make 编译ARM下的QWT 1.设置环境变量 export PATH=/usr/local/Trolltech/QtEmbedded-4.5.3-arm/bin/:$PATH 2.解压QW
[单片机]
STM32官方库文件分析及使用
1、解压在官网下载的库文件,文件夹内容详解如下图所示 2、下面逐个文件夹分析一下,首先打开“Libraries”文件夹,“CMSIS”文件夹中 是一些Cortex-M3内核文件及一些启动文件这里我们先不理会它,一会建立工程 的时候我们添加他们就可以 “STM32F10x_StdPeriph_Driver”文件夹中是一些库源码,我们来分析一下其中 的内容,如下图 3、我们返回到库文件的根目录,在来看一下“Project”文件夹,打开该文件夹,如 下图 4、我们打开工程模板文件夹“STM32F10x_StdPeriph_Template”,来分析一下在我 们建立工程的时候都需
[单片机]
STM32 IAP程序跳转前后的中断问题
跳转前最好使用 __disable_irq(); 关闭总中断 跳转到APP后再打开总中断 __enable_irq(); 我使用的是IAR,其他编译环境中这两个调用的具体名称需要另行测试。
[单片机]
STM32 模拟I2C 程序
STM32的硬件I2C不太好用,N多人深受其困扰,本人也不例外.所以干脆一不做二不休,用模拟的I2C算了,虽然速度不及硬件I2C,在一般的应用中还是不错的.帖上代码和协议分析图,造福广大受STM32的I2C困扰的朋友,哈哈!为了跟硬件I2C有所区别,本人把模拟的I2C名字写成TWI. H文件内容如下: #i nclude stm32f10x.h #ifndef _TWI_H_ #define _TWI_H_ //条件编译 1:使用软件模拟I2C #define TWI_ENABLE 1 #define TWI_SCL_0 GPIOB- BRR=GPIO_Pin_8 #define TWI_SCL_1 GPIOB- BSRR=GPI
[单片机]
stm32红外遥控
HS0038B http://www.51hei.com/stm32/3589.html 我用的红外遥控是使用的NEC协议,即使用PWM来调制发送的信息 NEC协议,其特征如下: 1、8位地址和8位指令长度; 2、地址和命令2次传输(确保可靠性) 3、PWM脉冲位置调制,以发射红外载波的占空比代表“0”和“1”; 4、载波频率为38Khz; 5、位时间为1.125ms或2.25ms; NEC码的位定义:一个脉冲对应560us的连续载波,一个逻辑1传输需要2.25ms(560us脉冲+1680us低电平),一个逻辑0的传输需要1.125ms(560us脉冲+560us低电平)。而遥控接收头在收到脉冲的时候为低电平,
[单片机]
STM32的ADC用法你都知道吗?
AD采样在电路中是一种比较常见的功能,可以用于电池电压检测、传感器值读取、信号采集等。STM32的ADC,由于引入了DMA,以及多种触发源,功能自然强大,用法也多种多样。这里简单说下单通道情况下,AD采样的几种用法。 1、AD单次转换+软件启动 最基本的用法,通过程序启动AD,AD采集一次,我们就去读一次。这种情况,建议开启AD转换完成中断,在中断中读出AD值并做处理。 这种方式的优点是配置简单,缺点么,太T么简单~ 初始化的时候,启动一次。然后在主循环里,每隔一秒启动一次。 在中断回调函数里,进行相关处理: 电脑输出如下: 2、连续转换+软件启动 在方法1的基础上做调整,从单次转换,变成连续转换。也就是说,只需要
[单片机]
stm32f105 spi 移植到stm32f103上
最近移植dw1000的程序,把stm32f105版本移植到103版本上去。 (1)发现两者的区别主要在于时钟上,具体请参考stm32 datasheet: 将始终改掉之后,SPI就可以运行stm32f103上了。 (2)PA15和PB3默认是用于JLINK的,需要启用复用时钟,代码如下: RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA ,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
[单片机]
6410上移植uboot
由于Uboot2011.06对S3C6410有了很好的支持,所以采用Uboot2011.06版本。 一、 移植环境 主 机:VMWare-ubuntu 开发板:ok6410—512M nandflash,Kernel:2.6.30.4 u-boot:u-boot-2011.06 二、 源码获得 Uboot源码到: ftp://ftp.denx.de/pub/u-boot/ 下载 三、 本次移植的功能实现 · 支持Nand Flash读写 · 支持从Nand Flash/SD启动(SD卡启动只在uboot1.1.6中完成) · 支持CS8900或者DM9000网卡 · 支持Yaffs文件系统 ·
[单片机]