IWDG简介STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障。说人话就是能解决程序跑飞的问题。编写代码思路-1- 使用这个功能必须解除写保护-2- IWDG使用的是低速内部时钟 (LSI)-3- 分频系数和定时时间代码编写(可直接拷贝使用)#include "stm32f10x.h"
串口简介和习惯 -1-通用同步异步收发器 (USART) 能够灵活地与外部设备进行全双工数据交换,满足外部设备对工业标准 NRZ 异步串行数据格式的要求。-2-硬件流控制一般是关闭的-3-波特率指单位时间传输bit个数-4-数据位一般是8位-5-一般无校验位编写代码思路-1-参考帮助手册(F1/F4都有)-2-参考库文件注释(只有F4有注释)标志位的选择通过查找中文数据手册自己定义F4代码编写,可
输出比较简介和特性-1-只有通用/高级定时器才能输出PWM-2-占空比就是高电平所占的比例-3-输出比较就是输出不同占空比的信号工作方式说明-1-1- PWM工作模式-1-2- 有效/无效电平有效电平可以设置为高或低电平,是自己配置的周期选择与计算周期=重装载 * 预分频值 / 时钟频率arr和psc是自己定义的 时钟频率可以查看时钟树,即下图中的84MHZF1和F4采用的时钟频率F1通过72MH
基本定时器简介与特性-1-时钟可分频-2-计数模式只可以选择累加-3-只可以用来定时(含中断)查看时钟源如图定时器7的时钟最大为72MHZ定时时间的计算通用定时器的时间计算公式为 Tout = ((arr+1)(psc+1))/Tclk ;arr为重载值psc为时钟分频系数Tclk为时钟频率代码编写(已经验证,可直接拷贝使用这是一个在定时器7的中断函数中翻转两个LED的demotimer.c文件#
SysTick简介与特性-1- SysTick属于系统时钟。-2- SysTick定时器被捆绑在NVIC中。-3- SysTick可以产生中断,且中断不可屏蔽。SysTick的时钟源查看通过时钟树可以看出滴答的时钟最大为72MHZ/8=9MHZ代码编写(已经验证,可直接拷贝使用)SysTick源文件#include "Systick.h" static u8 fac_us=0;
常规电路(带上拉电阻)阻值可选3.3/4.7/5.1/10 单位K偷懒电路利用GPIO内部的上拉模式代码(直接拷贝使用)这是一个外部中断控制变量a增加减少的demo为了新手方便我直接都写在了main.c文件#include "stm32f10x.h" u8 keyflag=0; u8 a=0; void KEY_Init(void) { RCC_APB2PeriphClockCmd(RCC
常规电路(带上拉电阻)阻值可选3.3/4.7/5.1/10 单位K偷懒电路利用GPIO内部的上拉模式代码(直接拷贝使用)这是一个按键控制灯亮灭的demo为了新手方便我直接都写在了main.c文件#include "stm32f10x.h" void LED_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClo
电路图常规画法(带限流电阻计算公式)设LED 电流为20mA(统一单位为 0.02A) 电压为3.3V限流电阻=(电源电压-负载正向工作电压)/工作电流限流电阻=(5V-3.3V)/0.02mA=1.7/V0.02A=85R省事画法(直接用IO输出)代码(直接拷贝使用)找对引脚!!!这是一个LED闪烁的demo为了新手方便我直接都写在了main.c文件#include "stm32f10x.h"
一、看门狗时间计算公式时间计算(大概):Tout=((4*2^prer)*rlr)/40 (ms).prer:分频数:0~7rlr:重装载寄存器值举例(4 * 2^4 * 625) /40=1000ms=1s二、如何实际使用?放狗和喂狗总是一起使用的,程序在溢出时间内喂狗才算合理在主函数放狗,自定义位置喂狗,看门狗的意义是防止程序卡死喂狗函数为IWDG_ReloadCounter(); 三、看门狗
1.用户名报错中文路径(图片引自网络)修改路径为 user\default\AppData\Local\Temp2.不能正确安装芯片包在软件内安装3.打开软件闪退使用管理员权限打开4.堆栈内存不足手动修改堆栈大小5.注释中文乱码文本编码改为国标23126.代码自动补全勾选红框7.加快编译速度取消勾选红框关闭跳转到定义
首先说明一下芯片内部并没有时钟, 而是内部振荡。使用内部振荡的好处是外部无需设计晶振电路 ,再说的简单点 ,不用外部晶振依然可以让单片机正常运转。书归正传 直接开始配置打开任意keli工程打开system_stm32f10x.c找到systeminit函数 全部注释掉然后在下面粘贴以下代码直接替换就可以用了#define USE_HSI 1 // 是否使用内部晶振 0 不使用 1使用
串口1改串口2
互补死区刹车原理这里不详述互补理解为相反的信号死区简单理解为信号跳变的缓冲时间刹车简单理解为暂停信号输出,既然是暂停意味着放开后会再次启动代码分享#include "AdvancedTim.h" #include "sys.h" #include "stm32f10x_tim.h" //高级定时器IO口配置 void advancedTim_gpio_init(void) { GPIO_Init
STM32驱动SSD1306实现充电动画
keil生成bin文件
STM32驱动SD卡
SIM900A教程
硬件速攻-激光测距传感器VL530L0X
stm32驱动波轮编码器教程
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号