
stm32
文章平均质量分 78
stm32开发
Wireless_Link
有丰富的蓝牙车载经验,曾给HAVAL H6,F7,江淮,北汽,丰田,大众,江铃等众多车型做过蓝牙车载方案,对传统蓝牙,低功耗蓝牙都有深入的研究。
展开
-
来吧展示!以太网配合FreeRTOS实现socket通信!实战STM32F4以太网DP83848配合LWIP
目的:实现STM32F407+FreeRTOS+Ethernet(DP83848)+Lwip实现socket通信,在实现之前我们先来了解下几点储备知识一. 以太网行业标准MII/RMII1 以太网接口MII,RMIIMII即“媒体独立接口”,也叫“独立于介质的接口”。它是IEEE-802.3定义的以太网行业标准。它包括一个数据接口,以及一个MAC和PHY之间的管理接口。RMII全称为“简化的媒体独立接口”,是IEEE-802.3u标准中除MII接口之外的另一种实现。1.1. 独立于介原创 2021-04-30 15:46:27 · 20720 阅读 · 17 评论 -
秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4 CAN!
一. CAN协议概念1.1 CAN 协议简介CAN 是控制器局域网络 (Controller Area Network) 的简称,它是由研发和生产汽车电子产品著称的德国 BOSCH 公司开发的,并最终成为国际标准(ISO11519以及ISO11898),是国际上应用最广泛的现场总线之一。差异点如下:CAN 总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN 为底层协议专为大型货车和重工机械车辆设计的 J1939 协议。近年来,它具有的高可靠性和良好的错误检测原创 2021-04-27 18:19:37 · 210946 阅读 · 81 评论 -
STM32F429 Cubemx配置Timer实现5ms一个中断
目的:在STM32F429实现一个5ms一个interrupt的中断,并且重复触发我们选用TIM2,可以看到TIM2是在APB1总线上,也可以看到APB1总线的 Clock是90M整个Cube的配置为:其中我要来说下几个参数:预分频器值(Prescaler value):此部分就是把clock source分频到一个你想要的频率,计数器时钟频率CK_CNT 等于fCK_PSC/ (PSC[15:0] + 1)比如我们APB1是90M,我们此部分设置90-1,得到的最终频率是9原创 2021-04-14 08:13:17 · 3171 阅读 · 0 评论 -
UART0串口编程系列之前奏篇
串口编程之前奏篇------------------------------------------------------------------------Author :tiger-johnWebSite :blog.youkuaiyun.com/tigerjbEmail :jibo.tiger@gmail.comUpdate-Time : 20转载 2016-09-23 23:20:01 · 886 阅读 · 0 评论 -
STM32CubeMx 针对407 discovery点亮LED灯
STM32Cube 是一个全面的软件平台,包括了ST产品的每个系列。平台包括了STM32Cube 硬件抽象层(一个STM32抽象层嵌入式软件,确保在STM32系列最大化的便携性)和一套的中间件组件(RTOS, USB, FatFs, TCP/IP, Graphics, 等等).直观的STM32微控制器的选择和时钟树配置微控制器图形化配置外围设备和中间件的功能模式和初始化参数C代码生成项目覆盖ST转载 2017-08-31 11:04:06 · 2237 阅读 · 0 评论 -
Stm32f1 Keil5调试时候peripherals不显示的解决方法
Stm32f103 Keil5调试时候peripherals没有东西,为空白:在调试时发现外设是这样:空白解决方法 在debug view下更改成以下模样 就会有这种效果了原创 2017-08-18 06:13:30 · 11276 阅读 · 6 评论 -
sdio卡识别与sd的异同
对于SD I/O卡而言,卡识别过程如下:1. 总线被激活2. SDIO卡主机发送IO_SEND_OP_COND(CMD5)命令3. 得到的响应是卡的操作条件寄存器的内容;-如果有响应,并且响应中的MP位为0,说明对应卡槽中的卡为SDIO卡,进而开始SDIO卡的初始化流 程–如果发送CMD5命令没有响应,则说明对应卡槽的卡为SD或MMC卡,进而开始SD/MMC卡的初始化流程转载 2017-08-06 21:43:48 · 3525 阅读 · 1 评论 -
CAN总线
嵌入式的工程师一般都知道CAN总线广泛应用到汽车中,其实船舰电子设备通信也广泛使用CAN,随着国家对海防的越来越重视,对CAN的需求也会越来越大。这个暑假,通过参加苏州社会实践,去某船舶电气公司实习几周,也借此机会,学习了一下CAN总线。概述CAN(Controller Area Network)即控制器局域网,是一种能够实现分布式实时控制的串行通信网络。想到CAN就要想到德国的Bos转载 2017-06-23 15:09:40 · 2087 阅读 · 0 评论 -
STM32 DMA->内存到内存
基于STM32 F401 Discovery板:DMA2在AHB1总线上步骤一:使能DMA#define DMA_STREAM_CLOCK RCC_AHB1Periph_DMA2 RCC_AHB1PeriphClockCmd(DMA_STREAM_CLOCK, ENABLE);步骤二:reset DMA Stream register:/* R原创 2016-02-03 15:22:28 · 8085 阅读 · 2 评论 -
STM32 UART(接收 ,发送数据)
UART接收发送数据:平台:STM32F401 discovery版此代码用的UART6,TX,RX对应的PIN脚是PC6,PC7如图:代码如下:步骤一:初始化串口的GPIO,USART,并且配置上UART的RX中断void USART6_Config(void){ USART_InitTypeDef USART_InitStructure; NV原创 2016-02-02 11:36:59 · 14205 阅读 · 0 评论 -
STM32 BUTTON方式(polling & interrupt)
基于stm32 F401 discovery版实现button polling & interrupt点亮LED/** ****************************************************************************** * @file Template/main.c * @author MCD Applicatio原创 2016-01-29 17:56:23 · 2549 阅读 · 0 评论 -
STM32 NVIC 抢占优先级和响应优先级
抢占优先级和响应优先级STM32 的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表明它的优先级别越高。抢占,是指打断其它中断的属性,即因为具有这个属性,会出现嵌套中断(在执行中断服务函数 A 的过程中被中断 B 打断,执行完中断服务函数 B 再继续执行中断服务函数 A),抢占属性由 NVIC_IRQChannelPreemptionPriority原创 2016-01-26 19:34:59 · 11716 阅读 · 2 评论 -
stm32 LED 流水灯剖析(库函数版)
基于stm32 F401 discovery 库函数点亮LED 3,4,5,6一.附原理图一张:分别对应的GPIO为PD12,PD13,PD14,PD15二.Memory and bus architecture #define PERIPH_BASE ((uint32_t)0x40000000) /*!< Peripheral bas原创 2016-01-26 09:30:26 · 3028 阅读 · 0 评论 -
stm32 启动过程
解析 STM32 的启动过程解析STM32的启动过程当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择。如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main函数开始执行。但一个经常会被忽略的问题是:微控制器(单片机)上电后,是如何寻找到并执行main函数的呢?很显然微控制器无法从硬件上定位main函数的入口地址,因为使用C语言作为开发语言后,变量/函原创 2016-01-21 19:55:02 · 1532 阅读 · 0 评论 -
IAR-stm32新建一个工程
新建工程如连接-IAR_创建工程不过有一点,就是官方历程中都是自带一个原创 2016-01-21 19:25:17 · 2539 阅读 · 0 评论 -
OV7670 FIFO 30W摄像头介绍(四) --- OV7670上位机验证驱动
在介绍OV7670之前先附上模块链接:点击购买OV7670摄像头模块介绍代码前,首先来看之前写的文章:OV7670 FIFO 30W摄像头介绍(一) — 整体介绍/SCCB时序OV7670 FIFO 30W摄像头介绍(二) — 寄存器图示说明OV7670 FIFO 30W摄像头介绍(三) — STM32F103驱动OV7670代码介绍1.OV7670驱动跟上位机通信格式目前上位机跟开发...原创 2019-12-30 09:52:20 · 4760 阅读 · 1 评论 -
OV7670 FIFO 30W摄像头介绍(三) --- STM32F103驱动OV7670代码介绍
在介绍OV7670之前先附上模块链接:点击购买OV7670摄像头模块介绍代码前,首先来看之前写的文章:OV7670 FIFO 30W摄像头介绍(一) — 整体介绍/SCCB时序OV7670 FIFO 30W摄像头介绍(二) — 寄存器图示说明1)寄存器介绍typedef enum{ ov7670_reg_gain = 0x00, ov7670_reg_blue = 0x01, o...原创 2019-12-30 08:57:28 · 9489 阅读 · 13 评论 -
(兼容正点原子引脚)OV7670 FIFO 30W摄像头介绍(二) --- 寄存器图示说明
在介绍OV7670之前先附上模块链接:点击购买OV7670摄像头模块前面的文章介绍了OV7670以及SCCB的代码(兼容正点原子引脚)OV7670 FIFO 30W摄像头介绍(一) — 整体介绍/SCCB时序本文章我们来说下OV7670的寄存器,以图片的形式说明...原创 2019-12-28 09:18:08 · 4213 阅读 · 0 评论 -
0.91寸 SSD1306 OLED介绍(五) --- 资料整理
资料包括:1)SSD1306 英文中文数据手册2)I2C时序图3)代码github,详细看文档4)验证SSD 1306 OLED的上位机原创 2019-12-27 11:13:39 · 3700 阅读 · 1 评论 -
(兼容正点原子引脚)OV7670 FIFO 30W摄像头介绍(一) --- 整体介绍/SCCB时序
在介绍OV7670之前先附上模块链接:点击购买OV7670摄像头模块1. OV7670摄像头介绍整体介绍OV7670 是 OV(OmniVision)公司生产的一颗 1/6 寸的 CMOS VGA 图像传感器。该传感器体积小、工作电压低,提供单片 VGA 摄像头和影像处理器的所有功能。通过 SCCB 总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率 8 位影像数据。该产品 VGA...原创 2019-12-27 06:21:32 · 15750 阅读 · 3 评论 -
0.91寸 SSD1306 OLED介绍(四) --- 用上位机验证OLED显示屏
在介绍0.91寸 SSD1306之前先附上模块链接:点击购买SSD1306 OLED显示模块前面的文章已经详细说明了OLED的原理,指令,代码0.91寸 SSD1306 OLED介绍(一) — 整体介绍/IIC时序介绍0.91寸 SSD1306 OLED介绍(二) — 命令介绍0.91寸 SSD1306 OLED介绍(三) — 代码介绍本文章我们通过上位机来验证下OLED驱动。1. O...原创 2019-12-26 20:37:13 · 4251 阅读 · 0 评论 -
0.91寸 SSD1306 OLED介绍(三) --- 代码介绍
在介绍0.91寸 SSD1306之前先附上模块链接:点击购买SSD1306 OLED显示模块本文章我们来介绍下0.91寸 OLED SSD1306的代码,在介绍之前,请参照前面两篇文章对OLED的概念说明:0.91寸 SSD1306 OLED介绍(一) — 整体介绍/IIC时序介绍0.91寸 SSD1306 OLED介绍(二) — 命令介绍1)命令枚举定义/***************...原创 2019-12-25 10:24:45 · 5841 阅读 · 3 评论 -
0.91寸 SSD1306 OLED介绍(二) --- 命令介绍
在介绍0.91寸 SSD1306之前先附上模块链接:点击购买SSD1306 OLED显示模块寄存器设置介绍其实要驱动一颗IC,说白了即使根据寄存器来通过特定的硬件协议来发送特定的数据就OK了,SSD1306 OLED就是通过IIC硬件协议来发送你要设置的寄存器以及要设置的寄存器值接下来我们就根据他的数据手册来一一介绍他的寄存器。SSD1306 OLED的寄存器一共分为几大类,但是由于每个版...原创 2019-12-23 16:27:45 · 8568 阅读 · 1 评论 -
SSD1306(OLED驱动芯片)指令详解
在介绍0.96寸 SSD1306之前先附上模块链接:点击购买SSD1306 OLED显示模块更多OLED系列请看专栏:点击进入基础命令:1.页地址模式下设置列起始地址低位(Set Lower Column Start Address For Page Addressing Mode)(00h~0Fh)此指令用于在页地址模式下设置GDDRAM的列起始地址(8位)的低4位, 页地址会在...原创 2018-08-01 14:13:51 · 28862 阅读 · 0 评论 -
0.91寸 SSD1306 OLED介绍(一) --- 整体介绍/IIC时序介绍
在介绍0.91寸 SSD1306之前先附上模块链接:点击购买SSD1306 OLED显示模块1. SSD1306 OLED介绍OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。OLED由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快...原创 2019-12-23 10:11:44 · 25819 阅读 · 12 评论 -
【stm32f103】stm32 外部中断(寄存器版)
中断分类 STM32的EXTI控制器支持19 个外部中断/ 事件请求。每个中断设有状态位,每个中断/ 事件都有独立的触发原创 2017-08-23 06:38:46 · 8735 阅读 · 0 评论 -
【stm32f103】USART RX实现(寄存器版)
本讲主要实现usart RX的实现,主要分几部分的应用1. USART 1 RX polling的实现2. USART1 RX DMA的实现3. USART1 RX DMA中断的实现4. 配合着TIMER进行RX DMA实现(用途很大)本文章不在对寄存器贴图,直接上代码以及运行图,有兴趣的可以去调试下看看寄存器,以下历程都必须调用Ini原创 2017-08-22 14:26:19 · 4654 阅读 · 0 评论 -
【stm32f103】USART TX发送实现(寄存器版)
本讲主要实现usart TX的实现,主要分几部分的应用1. USART 1 Tx polling的实现(附带printf的实现)2. USART1 Tx DMA的实现3. USART1 TX DMA中断的实现话不多说,开始一.硬件原理图USART1在APB2总线上二.寄存器图寄存器可以参考 参考手册,在这里不原创 2017-08-22 10:03:01 · 8377 阅读 · 0 评论 -
【stm32f103】SysTick实现延时(寄存器版)
一.SysTick寄存器介绍SysTick要参照Programming manual手册,寄存器一共有4个,如图:分别为STK_CTRLSTK_LOADSTK_VALSTK_CALIB校验,此基本用不到,或者水平没到那个程度,暂时用不到二.程序分析Delay_usvoid Delay_us(unsigned int nTime){原创 2017-08-21 18:27:45 · 4328 阅读 · 0 评论 -
【stm32f103】TIMER基本定时功能的使用(寄存器版)
一.TIMER stm32框图如图: 1为时钟源● 内部时钟(CK_INT)●外部时钟模式1:外部输入脚(TIx)● 外部时钟模式2:外部触发输入(ETR)● 内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,如可以 配置一个定时器Timer1而作为另一个定时器Timer2的预分频器本历程采用原创 2017-08-21 12:12:54 · 9331 阅读 · 0 评论 -
【stm32f103】DMA应用memory to memory(寄存器版)
注释:此文档是利用DMA实现memory to memory的搬运可能有的人会说直接用memcpy会更方便,确实是这样,但是此文章仅仅是DMA应用的例子,所以不采用memcpy的方法,并且此历程中不配置DMA中断后续在系统讲解USART章节中再讲解DMA中断一.DMA1所在总线所以要先ENABLE DMA所在总线时钟RCC->AHBENR = RCC_AHBENR_DMA2原创 2017-08-20 21:59:58 · 7338 阅读 · 3 评论 -
【stm32f103】GPIO原理以及LED的应用(寄存器版)
一.硬件原理图有两个LED灯D1,D2,分别对应的PIN是PB6,PB7,低电平时点亮LED灯二.寄存器图通用GPIO寄存器一共有以下几个寄存器寄存器可以参考 参考手册,在这里不做详细讨论三.编程步骤:1. 使能响应的GPIO时钟2. 配置通用GPIO为推挽输出(因为默认低电平,所以此时LED灯会亮起来)3. 输原创 2017-08-18 06:44:23 · 5077 阅读 · 0 评论 -
【stm32f407】SD协议(三)-源码
一.硬件连接上图为stm32的CPU引脚图上图为SD卡的接线二.源码Sdio_sdcard.h//SDIO相关标志位,拷贝自:stm32f4xx_sdio.h#defineSDIO_FLAG_CCRCFAIL ((uint32_t)0x00000001)#defineSDIO_FLAG_DCRCFAIL原创 2017-06-28 22:15:28 · 5480 阅读 · 0 评论 -
【stm32f407】SD协议(二)-SD卡
一.SD卡简介1) 简介:SD卡是基于flash的存储卡。SD卡和MMC卡的区别在于初始化过程不同。SD卡的通信协议包括SD和SPI两类。SD卡使用卡内智能控制模块进行FLASH操作控制,包括协议、安全算法、数据存取、ECC算法、缺陷处理和分析、电源管理、时钟管理。2) 类型:MMC卡: MultiMedia card,有 7个触点(原创 2017-06-28 22:03:12 · 7688 阅读 · 0 评论 -
【stm32f407】SD协议(一)-SDIO
SDIO简介1. SDIO主要功能及框图STM32F4的SDIO控制器支持多媒体卡(MMC卡)、SD存储卡、SD I/O卡和CE-ATA设备等。SDIO的主要功能如下:1) 与多媒体卡系统规格书版本4.2全兼容。支持三种不同的数据总线模式:1位(默认)、4位和8位。2) 与较早的多媒体卡系统规格版本全兼容(向前兼容)。3) 与SD存储原创 2017-06-28 21:41:42 · 10805 阅读 · 0 评论 -
【stm32f407】基于SRAM的内存管理
一.分配原理内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。内存管理的实现方法有很多种,他们其实最终都是要实现2个函数:malloc和free;malloc函数用于内存申请,free函数用于内存释放。我们介绍一种比较简单的办法来实现:分块式内存管理。下面我们介绍一下该方法的实现原理,如图所示:原创 2017-06-27 16:10:49 · 6826 阅读 · 0 评论 -
【stm32f407】flash编程
一.Flash介绍不同型号的STM32F40xx/41xx,其FLASH容量也有所不同,最小的只有128K字节,最大的则达到了1024K字节。STM32F4的FLASH容量为1024K字节,如参考手册图:STM32F4的闪存模块由:主存储器、系统存储器、OPT区域和选项字节等4部分组成。主存储器,该部分用来存放代码和数据常数(如const类型的数据)。分为12个扇区,前4个扇区为1原创 2017-06-26 17:39:12 · 14371 阅读 · 1 评论 -
【stm32f407】CAN总线
一.CAN简介CAN是ControllerArea Network的缩写(以下称为CAN),是ISO国际标准化的串行通信协议。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,各种各样的电子控制系统被开发了出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”、“通过多个LAN,进原创 2017-06-23 16:58:10 · 19311 阅读 · 5 评论 -
【stm32f407】SPI实验 驱动W25Q128
一.SPI介绍SPI 是英语SerialPeripheral interface的缩写,顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚...原创 2017-06-21 16:29:32 · 24739 阅读 · 3 评论 -
【stm32f407】I2C实验
一.I2C介绍IIC(Inter-IntegratedCircuit)总线是一种由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。它是由数据线SDA和时钟SCL构成的串行总线,可发送和接收数据。在CPU与被控IC之间、IC与IC之间进行双向传送,高速IIC总线一般可达400kbps以上。如图:I2C协议一共有6种协议信号① 空闲状态②原创 2017-06-21 10:48:58 · 6455 阅读 · 0 评论