推荐阅读最新更新时间:2024-03-16 14:31
14. 独立看门狗实验
一。 看门狗概述 1. 为什么要用看门狗 2. 看门狗要解决的问题 STM32有两个看门狗 独立看门狗 窗口看门狗 3. 独立看门狗的功能描述 键值寄存器 KR (1)往KR中写入0xCCCC的时候,开始启动看门狗。 (2)计数器开始从其复位值0xFFF递减,当计数到0的时候会产生一个复位信号RESET。 (3)如果在某个时候往KR寄存器中写入0xAAAA(喂狗),自动重装载寄存器RLR的值就会重新加载到计数器中,从而避免看门狗复位。 如果能够及时喂狗,计数器的值就无法到0,从而程序可以正常运行。 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰, 造成程序跑
[单片机]
STM32输入输出总结
(1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 对于刚入门的新手,我想这几个概念是必须得搞清楚的,平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但一直未曾对这些做过归纳。因此,在这里做一个总结: 推挽输出:可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互
[单片机]
STM32 IAP(对flash进行读写)
/************************************************************ **实验名称: **功能: **注意事项: **作者: *************************************************************/ #include STM32Lib\\\\\\\\\\\\\\\\stm32f10x.h #include hal.h #define FLASH_ADR 0x08008000 //要写入数据的地址 #define FLASH_DATA 0x5a5a5a5a //要写入的数据 int main(void) { u32 tmp;
[单片机]
STM32-USMART学习笔记
USMART移植步骤: 1.将usmart组件添加到工程文件夹下,在选项和组管理即 中,配置好头文件路径和组文件。 2.usmart.c主要包含两个函数void usmart_init(u8 sysclk)和void usmart_scan(void),第一个函数里有个条件编译#if USMART_ENTIM2_SCAN==1,这个在usmart.h里设置。这个宏定义初始化定时器2,本实验在定时器2的中断处理函数中执行usmart_dev.scan();进行行usmart扫描,为了便于移植,中断初始化及处理函数写在了usamrt.c里,time.c里面的初始化和终端处理被注释掉了。 3.特别注意:这个组件使用串口发送调试函数,u
[单片机]
STM32与SD卡通信问题详解
SD的驱动和应用困扰了我很久,寒假的时候看到SD简化版物理层协议的时候就傻掉了,看到SD的驱动快3000行的代码也动摇了。这几天几种地看了一下SD卡的相关内容,总结了一些体会,感觉也没有那么恐怖了。我决定从分层上来讨论SD的驱动和应用,因为这样可以构建一个清晰的逻辑,且不知哪位计算机大师曾说过:一切计算机问题都可以用分层的方法来解决。 我自己把SD卡从驱动到应用共分为4层,从下至上依次为:驱动层、物理层、文件系统层、应用层。下面一一来介绍各层的一些重要的操作。 1)驱动层 驱动层,对应到ST的库,就是stm32f10x_sdio.c/.h这个两文件。其实使用任何一个STM32的外设,只要用库函数都离不开这一对互相对应的
[单片机]
学习STM32(3)-电源、时钟、复位电路
Stm32时钟分析 该分析材料大部分来自opendev论坛,我所做的只不过是加上一些自己的分析和整理,由于个人能力有限,纰漏之处在所难免,欢迎指正。 一、硬件上的连接问题 如果使用内部RC振荡器而不使用外部晶振,请按照如下方法处理: 1)对于100脚或144脚的产品,OSC_IN应接地,OSC_OUT应悬空。 2)对于少于100脚的产品,有2种接法: i)OSC_IN和OSC_OUT分别通过10K电阻接地。此方法可提高EMC性能。 ii)分别重映射OSC_IN和OSC_OUT至PD0和PD1,再配置PD0和PD1为推挽输出并输出'0'。此方法可以减小功耗并(相对上面i)节省2个外部电阻。 对上图
[单片机]
stm32之USART/UART应用实例
硬件:STM32F103VCT6 开发工具:Keil uVision4 下载调试工具:ARM仿真器 USART与UARTD的区别: usart:全双工通用异步串行收发器 uart:全双工通用同步/异步串行收发器 usart支持同步通讯时比uart多一条时钟线,usart用于异步通讯时跟uart一样。 单工: 只能单向传输数据 半双工:某一个时刻只能接受或者发送的双向传输数据 全双工:**可以同时进行接收和发送数据 异步:发送方发送一帧数据后不需要接受方应答继续发送下一帧 同步:发送方发送完一帧数据后需要等待接受方应答才能发下一帧 串行:每一传输按位进行,在一个导线上一位一位一次传输 并行:每次传输按两位或
[单片机]
STM32芯片的内部架构如何
STM32芯片主要由内核和片上外设组成,STM32F103采用的是Cortex-M3内核,内核由ARM公司设计。STM32的芯片生产厂商ST,负责在内核之外设计部件并生产整个芯片。这些内核之外的部件被称为核外外设或片上外设,如 GPIO、USART(串口)、I2C、SPI 等。 芯片内部架构示意图 芯片内核与外设之间通过各种总线连接,其中驱动单元有 4 个,被动单元也有 4 个,具体如上图所示。可以把驱动单元理解成是内核部分,被动单元都理解成外设。 ICode 总线 ICode总线是专门用来取指令的,其中的I表示Instruction(指令),指令的意思。写好的程序编译之后都是一条条指令,存放在 FLASH中,内核通过ICod
[单片机]