- 博客(24)
- 资源 (8)
- 收藏
- 关注
原创 STM32之I2C原理
一、概述 1、I2C总线只有两根双向信号线。一根是数据线SDA,另一根是时钟线SCL。 SCL:上升沿将数据输入到每个EEPROM器件中;下降沿驱动EEPROM器件输出数据。(边沿触发) SDA:双向数据线,为OD门,与其它任意数量的OD与OC门成\线与\关系。 I2C总线通过上拉电阻接正电源。当总线空闲时,两根线均为高电平(SDL=1;SCL=1)。连到总线上的任一
2017-12-29 22:48:56 6014
原创 STM32之SPI从机例程
#include "stm32f10x.h"/* RCC时钟配置 */void RCC_config(void){ ErrorStatus HSEStartUpStatus;/* RCC寄存器设置为默认配置 */RCC_DeInit();/* 打开外部高速时钟 */RCC_HSEConfig(RCC_HSE_ON);/* 等待外部高速时钟稳定 *
2017-12-28 22:47:14 21358 4
原创 STM32之SPI主机例程
#include "stm32f10x.h"/* RCC时钟配置 */void RCC_config(void){ ErrorStatus HSEStartUpStatus;/* RCC寄存器设置为默认配置 */RCC_DeInit();/* 打开外部高速时钟 */RCC_HSEConfig(RCC_HSE_ON);/* 等待外部高速时钟稳定 *
2017-12-28 22:46:36 7428
原创 STM32之SPI原理
SPI(Serial Peripheral Interface,串行外设接口)是Motorola公司提出的一种同步串行数据传输标准,是一种高速的,全双工,同步的通信总线,在很多器件中被广泛应用。SPI相关缩写SS: Slave Select,选中从设备,片选。CKPOL (Clock Polarity) = CPOL = POL = Polarity = (
2017-12-28 20:03:12 1983
原创 STM32之独立看门狗原理
STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即主时钟发生故障,它也仍然有效,这里我们需要注意独立看门狗的时钟不是准确的40Khz,二是在30~60Khz之间变化的一个时钟,只是我们估算以40Khz来计算,看门狗对时间要求不是很青雀,时钟有点偏差还是可以接受的。独立看门狗相关的几个寄存器1.1. 键值寄存器(IWDG_KR)寄存器各位描述如下:独
2017-12-26 23:15:09 5239
原创 STM32之RTC原理
一、RTC时钟框图分析(重要)先熟悉一下几个知识点: 1、STM32的实时时钟(RTC)是一个独立的定时器! 2、RTC模块和时钟配置系统(RCC_BDCR寄存器)是在后备区域,即在系统复位火从待机模式唤醒后RTC的设置和时间维持不变。RTC这章中,对RTC相关的寄存器的操作特别重要,我在这里不解释了,请查阅手册。。先上图!R
2017-12-26 23:11:34 5802 2
原创 STM32之DMA原理
一、DMA简介1、DMA简介 DMA(Direct Memory Access:直接内存存取)是一种可以大大减轻CPU工作量的数据转移方式。 CPU有转移数据、计算、控制程序转移等很多功能,但其实转移数据(尤其是转移大量数据)是可以不需要CPU参与。比如希望外设A的数据拷贝到外设B,只要给两种外设提供一条数据通路,再加上一些控制转移的部件就可以完成数据的拷贝。
2017-12-26 23:01:03 10884 1
原创 STM32之串口原理
串口通信定义 串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。串口通信原理 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送
2017-12-26 22:42:34 2925
原创 STM32之外部中断例程
外部中断的基本步骤如下:1.设置好相应的时钟;2.设置相应的中断;3.IO口初始化;4.把相应的IO口设置为中断线路(要在设置外部中断之前)并初始化;5.在选择的中断通道的响应函数中中断函数。
2017-12-26 21:46:31 2505
原创 STM32之外部中断原理
STM32 的每一个GPIO都能配置成一个外部中断触发源,这点也是 STM32 的强大之处。STM32 通过根据引脚的序号不同将众多中断触发源分成不同的组,比如:PA0,PB0,PC0,PD0,PE0,PF0,PG0为第一组,那么依此类推,我们能得出一共有16 组,STM32 规定,每一组中同时只能有一个中断触发源工作,那么,最多工作的也就是16个外部中断。STM32F103 的中断控制器支持 1
2017-12-25 00:35:55 3781
原创 STM32之中断嵌套控制器
STM32 (Cortex-M3) 中的优先级概念STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。1. 何为占先式优先级(pre-emption priority)高占先式优先级的中断事件会打断当前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。2
2017-12-24 18:32:54 3603 2
原创 STM32之GPIO推挽输出例程
/* GPIO配置 */void GPIO_config(){ GPIO_InitTypeDef GPIO_InitStructure; /* 使能GPIOC时钟 */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); /* 设置GPIOC寄存器为默认参数 */ GP
2017-12-24 18:27:46 7844
原创 STM32之GPIO原理
GPIO的配置种类有8种:(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 复用开漏输出
2017-12-24 18:26:21 513
原创 STM32之RCC配置
采用8MHz 外部HSE 时钟,程序的时钟设置参数流程如下: 1.将 RCC 寄存器重新设置为默认值:RCC_DeInit(); 2.打开外部高速时钟晶振 HSE :RCC_HSEConfig(RCC_HSE_ON); 3.等待外部高速时钟晶振工作: HSEStartUpStatus = RCC_WaitForHSEStar
2017-12-24 18:07:09 1344
原创 STM32之RCC原理
1、时钟源在 STM32 中,一共有 5 个时钟源,分别是 HSI 、 HSE 、 LSI 、 LSE 、 PLL 。 ①HSI 是高速内部时钟, RC 振荡器,频率为 8MHz ; ②HSE 是高速外部时钟,可接石英 / 陶瓷谐振器,或者接外部时钟源,频率范围是 4MHz – 16MHz ; ③LSI 是低速内部时钟, RC 振荡器,频率为 40KHz ;
2017-12-24 18:05:12 1082
转载 __main代码分析
STM32启动代码主要是分配堆栈及设置向量表,然后跳转到__main函数。跳转具体到代码段部分如下:[cpp] view plain copyReset_Handler PROC EXPORT Reset_Handler [WEAK]
2017-12-24 17:53:55 7356
原创 STM32 system_stm32f10x.c文件分析
startup_stm32f10x_md.s文件中,调用了一个叫SystemInit的函数,该函数其实在system_stm32f10x.c中定义,旨在初始化系统时钟、初始化外部SRAM、设置中断向量表地址。void SystemInit (void){ /* 使能内部高速时钟 */ RCC->CR |= (uint32_t)0x00000001;#
2017-12-24 17:46:16 5477
原创 STM32启动文件分析
Cortex-M3内核有3种情况:1、 通过boot引脚设置可以将中断向量表定位于SRAM区,即起始地址为0x2000000,同时复位后PC指针位于0x2000000处;2、 通过boot引脚设置可以将中断向量表定位于FLASH区,即起始地址为0x8000000,同时复位后PC指针位于0x8000000处;3、 通过boot引脚设置可以将中断向量表定位于内置Bootloader区,运行
2017-12-24 17:42:42 399
原创 STM32分散加载文件
通过使用分散加载机制,可以为链接器指定映像的内存映射。分散加载为您提供了对映像组建分组和位置的全面控制。分散加载可以用于简单映像,但它通常仅用于具有复杂内存映射的的映像,即多个区在加载和执行时分散在内存映射中。加载域:就是编译之后得到的二进制文件烧写到rom中的这一段区域。包括只读的代码段和常量被称作RO段(ReadOnly);可读写的全局变量和静态变量被称作RW段(ReadWri
2017-12-24 16:14:24 3469
C语言ntp协议获取网络时间
2017-04-12
经纬度计算日出日落时间(C语言)
2017-04-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人