STM32开发
文章平均质量分 75
卤煮小鱼
这个作者很懒,什么都没留下…
展开
-
W25Q128---读写
总结:通信方式是SPI,读数据可以从任何地方读,写数据和擦出数据需要按照页或者扇区或者簇为单位进行。写数据:一次最多写一页,如果超出一页数据长度,则分几次完成。例如本芯片一个扇区为4096个字节,那么需要写16页,要进行至少16次按页写数据。擦数据:擦数据的最小单位是一个扇区,也可以直接擦出整个芯片。芯片介绍:容量:16Mbytes 一页为256个字节 一个扇区为4K个字节数据手册介绍:The W25Q128FV array is organized into 65,536 program原创 2021-10-08 14:05:55 · 1238 阅读 · 0 评论 -
printf
不错的方式格式化输出log ,#ifdef USER_MAIN_DEBUG#define user_main_printf(format, ...) printf( format "\r\n", ##__VA_ARGS__)#define user_main_info(format, ...) printf("[\tmain]info:" format "\r\n", ##__VA_AR...原创 2019-12-13 13:52:08 · 278 阅读 · 0 评论 -
STM32 sprintf操作浮点数导致hardfult
挖坟老帖:https://www.amobbs.com/thread-3258924-1-1.html遇到的问题:stm32f407 ucosIII 调用sprintf操作浮点数然后导致hardfult。根据论坛:尝试了(1) 堆栈对齐:(2)修改优化级别然而没什么卵用:理论上原因是ucosIII 是四字节对齐 而sprintf 需要的库是8字节对齐导致的。解决方法:依然8字节...原创 2019-10-23 13:14:26 · 3117 阅读 · 1 评论 -
AD7606的并行采集
#include "bsp_ad7606.h"typedef enum { INPUT = 0x00, OUTPUT = 0x01, AIN = 0x03}PinMode;typedef struct{ GPIO_TypeDef* GPIOx; uint16_t Pin; PinMode Mode;}MYGPIO;MYGP...原创 2019-10-16 12:43:46 · 3799 阅读 · 2 评论 -
位置式和增量式PID算法
一、PID框图:模拟的PID公式u(t)=Kp[e(t)+1Ti∫0te(t)dt+Tdde(t)dt]u(t) = Kp [e(t) + \frac{1}{Ti} \int ^t_0 e(t) dt + Td \frac {de(t)}{dt} ]u(t)=Kp[e(t)+Ti1∫0te(t)dt+Tddtde(t)]将PID公式离...原创 2018-11-01 21:33:05 · 11072 阅读 · 1 评论 -
stm32后生成编译文件大小探索
转自:http://www.cnblogs.com/51mcu/p/3940376.html一般在stm32工程使用keil编译之后,keil的build output栏目下面会出现如图所示的输出信息,其中会显示code 大小 RO-data、RW-data 、ZI-data的大小。一般别人不怎么会在意这个的大小。code : 代码RO-data :指的是程序中的指...转载 2018-10-24 14:24:55 · 2722 阅读 · 0 评论 -
RS485设计与应用指南
0. 前言当前自动控制系统中常用的网络,如现场总线CAN、Profibus、INTERBUS-S以及ARCNet的物理层都是基于RS-485的总线进行总结和研究。1、EIA RS-485标准在自动化领域,随着分布式控制系统的发展,迫切需要一种总线能适合远距离的数字通信。在RS-422标准的基础上,EIA研究出了一种支持多节点、远距离和接收高灵敏度的RS-485总线标准。RS-485标准采有...转载 2018-11-05 11:27:55 · 1733 阅读 · 0 评论 -
STM32定时器
前言:如上图定时器控制分为6个部分:①时钟源②触发控制器③时基单元④输入捕获模块⑤输出比较模块⑥断路功能。一:时钟源可以来自①_1:内部时钟①_2:外部时钟模式11_时钟输入引脚TIMx_CH1/2/3/4 ---->2_滤波—>3_边沿检测—>4_触发选择–>5从模式选择(选定了触发源信号后,信号是默认接到 TRGO 引脚的,需要让触发信号成为外...原创 2018-11-15 16:35:42 · 485 阅读 · 0 评论 -
STM32F03开发板--系统时钟设置SysTick
首先我先分析下startup_stm32f0xx.s启动代码,其中/* Call the clock system intitialization function.*/ bl SystemInit/* Call the application\'s entry point.*/ bl main发现开发板上电启动过程中,先调用了SystemInit()函数,再进入main()函数。...转载 2018-11-16 11:29:31 · 1592 阅读 · 0 评论 -
STM32F429 如何使用NAND Flash
(1)原理介绍:http://www.51hei.com/stm32/3609.html(2)文件系统(3)坏块管理(4)操作使用原创 2019-03-05 10:19:40 · 3475 阅读 · 1 评论 -
STM32F429 如何使用SDRAM
关于STM32F429 控制SDRAM( FMC—扩展外部SDRAM )(1)原理介绍:https://www.cnblogs.com/firege/p/5805812.html 》为什么是FMC 不是 FSMC ?区别在那里! STM32F429使用FMC外设来管理扩展的存储器,FMC是Flexible Memory Controller的缩写,译为可变存储控制器。...原创 2019-03-04 14:48:46 · 4611 阅读 · 0 评论 -
STM32F429 如何使用LCD
(1)硬件接口http://forum.armfly.com/forum.php?mod=viewthread&tid=32761&highlight=F429%2BLCD原创 2019-03-31 11:01:29 · 4052 阅读 · 1 评论 -
STM32F429 如何使用LCD(2)
提供一下IPS 5寸屏幕的链接:https://item.taobao.com/item.htm?spm=a1z10.5-c.w4002-1175222619.21.72611ce87gApzL&id=524686134827刚开始是在安富莱V6的开发板上焊接的调试了好久。需要注意的坑有一下:(1)该屏幕使用LCD驱动为ILI9806 ,使用的触摸芯片是ft6206。第一步选择:L...原创 2019-03-31 13:12:27 · 1443 阅读 · 0 评论 -
STM32 F4 CAN HAL 配置
CAN HAL 配置遇到的问题记录:(1)CAN在调用之前,进行了自测试. (非中断模式),如果改为中断模式,只能正常接收数据一次。(2)滤波器的设置:参考:STM32之CAN —CAN ID过滤器分析再谈STM32的CAN过滤器-bxCAN的过滤器的4种工作模式以及使用方法总结stm32之CAN发送、接收详解(3)bsp_CAN.C/* 包含头文件 -------------...原创 2019-10-07 16:10:39 · 1478 阅读 · 0 评论 -
ROM、RAM、DRAM、SRAM和FLASH的区别
ROM和RAM指的都是半导体存储器,ROM是Read Only Memory的缩写,RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据,而RAM通常都是在掉电之后就丢失数据,典型的RAM就是计算机的内存。RAM有两大类,一种称为静态RAM(StaticRAM/SRAM),SRAM速度非常快,是目前读写最快的存储设备了,但是它也非常转载 2017-09-02 20:11:29 · 305 阅读 · 0 评论 -
基于SRAM的内存管理
内存管理,是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。内存管理的实现方法有很多种,他们其实最终都是要实现2个函数:malloc和free;malloc函数用于内存申请,free函数用于内存释放。转载 2017-09-06 19:56:24 · 2822 阅读 · 1 评论 -
stm32 TFTLCD驱动原理(三)
代码的实现(1)首先是对 TFTLCD 进行引脚初始化static void LCD_GPIO_Config ( void ){ GPIO_InitTypeDef GPIO_InitStructure; /* 使能复用IO时钟:复用为fsmc功能 */ RCC_APB2PeriphClockCmd ( RCC_APB2Periph_AFIO, ENABLE );原创 2017-08-27 11:42:22 · 5472 阅读 · 1 评论 -
stm32 TFTLCD驱动原理(二)
FSMC简介: (1) 在大容量, 100 脚以上的 STM32F103 芯片都带有FSMC 接口,硬石开发板 F1采用的主芯片为 STM32F103ZET6, 是带有FSMC 接口的。 FSMC(灵活的静态存储器控制器),之所以称为灵活,是由于通过对特殊公的寄存器的设置,FSMC 能够根据不同个外部存储器列席,发出相应的数据/地址/控制信号类型以匹配信号的速度原创 2017-08-27 11:05:19 · 2703 阅读 · 0 评论 -
stm32 TFTLCD驱动原理(一)
stm32 TFTLCD驱动原理原创 2017-08-27 09:59:53 · 20592 阅读 · 2 评论 -
STM32 RTC时钟设置
RTC移植时注意两点(1)RTC需要中断函数。每秒中断一次,更新需要显示的标志。(2)RTC运行中校正时间,更新RTC_CNTx时不能直接调用Time_Adjust()函数,需要开启PWR 和 BKP 时钟,且允许访问BKP域。void RTC_SetCurrentTime(struct rtc_time *tm){/* Enable PWR and BKP clocks */R原创 2017-08-22 21:09:41 · 3088 阅读 · 0 评论 -
STM32F207运用串口空闲中断+DMA接收不定长数据
运用串口空闲中断+DMA的方式接收不定长数据。转载 2017-08-13 22:20:21 · 528 阅读 · 0 评论 -
STM32f407的数字采集电路ADC的设计与使用
(1)stm32 具有2路12位的ADC,具有18个通道(其中两个为内部通道)。各通道 的 ADC转换可以单次,连续,扫描或者间断模式执行。ADC的数据可以选择左对齐或者右对齐存储在16位的数据寄存器里面。其中模拟看门狗可以检查输出的电压是否在设定的范围内。(2)ADC的主要技术指标 分辨率:12分辨率,不能够测量负压,无符号。做小的量化单位LSB=Vref+/2^12.原创 2017-08-11 00:07:55 · 11742 阅读 · 1 评论 -
STM32 FSMC 外部使用SRAM
SRAM是什么:SRAM是英文Static RAM的缩写,中文名叫静态存储器,它是一种具有静止存取功能的内存,不需要刷新电路即能保存它内部存储的数据。目前SRAM的品牌主要有ISSI芯成、cypress赛普拉斯、来杨Lyontek、瑞萨renesas、VTI、JSC韩国济州半导体、NETSOL等多种品牌,分为同步SRA、异步SRAM、高速SRAM等各类存储器。SRAM用来做原创 2017-09-02 20:48:43 · 8597 阅读 · 0 评论 -
STM32F042 基于CubeMX HAL库CAN的配置
STM32F042 基于CubeMX HAL库CAN的配置首先说说使用时候的两个坑。(1)要使能Swap PA9/10 –>PA11/12,这个时候PA11和PA12引脚才能出现。(2)我第一步用的是回环模式。大致是这样的。 While{SendCanMessage();} Can_interrupt{HAL_CAN_Receive原创 2017-10-18 23:28:29 · 13379 阅读 · 1 评论 -
FT232RL-REEL 电路图
FTDI公司生产的FT232RL芯片作为USB与TTL电平接口的转换芯片,该芯片具有全握手协议及MODEM接口(CTS、RTS、DTR、DCD、RI),并具有硬件及Xon/Xoff流量控制。芯片内置晶振,外围电路简单,驱动能力强。其接口转换电路如下...原创 2018-03-26 22:19:20 · 13332 阅读 · 0 评论 -
STM32 SRAM内存管理
内存管理:内存池被分割n个内存块,内存表为n的数组,标记内存表(内存块的使用状态)内存分配-->计算需要m个没存块-->寻找空间内连续的内存区域,标记内存表,返回偏移地址-->计算出返回地址内存释放-->输入地址-base地址/块size ,得到偏移 ->查内存表知道内存块的大小K->从偏移位置起 K个内存表被清零。/** *****************...转载 2018-03-20 16:44:40 · 1199 阅读 · 0 评论 -
STM32F4 USART1 TX RX FIFO
USART1 TX RX FIFO/*********************************************************************************************************** * 模块名称 : 串口驱动模块 * 文件名称 : bsp_uart...原创 2018-03-12 10:16:04 · 2631 阅读 · 0 评论 -
STM32F407 SPI flash
STM32F407 SPI 接口:STM32F4XX时钟计算HCLK=168M PCLK1 =HCLK/4 =42M PCLK2 =HCLK/2 =84M SPI2、SPI3在PCLK1,最大时钟为42MSPI1在PCLK2,最大时钟为84MSTM32F4 支持的最大SPI时钟为37.5Mbits/s 因此需要分频。例程选择SPI2 分频后为21M串行Flash W25Q64BVSSIG (最高支...原创 2018-03-09 15:24:58 · 8140 阅读 · 0 评论 -
Modbus协议
Modbus协议Modbus协议是一个主从协议,在同一时刻,只有一个主节点联接于总线,一个或者多个子节点联接于串行总线,Modbus通讯是由主节点发起,子节点在没有收到主节点的请求是不会发送数据的,子节点也不会互相通信。主节点在同一个时刻只会发起一个Modbus的事务处理。主节点对字节点发送Modbus 请求:单播模式:主节点以特定的地址访问某个子节点,子节点接到并处理请求后,子节点向主节点返回一...原创 2018-03-01 14:55:18 · 639 阅读 · 0 评论 -
局部变量,全局变量,堆,栈,静态和全局区别
局部变量,全局变量,堆,栈,静态和全局栈区stack 编译器自动的分配释放,存放函数的参数值和局部变量等。Stack 是内存中一个连续的块,堆栈指针SP指向堆栈的栈顶。堆栈的底部是一个固定地址堆栈特点是后进先出, 堆区 heap 由程序员分配和释放,或者OS回收向高地址扩展的数据结构,是不连续的的内存区域。只是由系统使用后链表存储的空闲内存地址,自然不连续。链表遍历的方向是低地址向高地址。 全局区...原创 2018-03-08 10:49:48 · 792 阅读 · 0 评论 -
STM32串口使用
STM32的串口大多数情况下会预留USART1作为烧录接口或者调试接口。通常做法是调用 stdio.h 将串口的输入输出重新定向,可以直接调用printf.da原创 2017-08-16 20:40:22 · 712 阅读 · 0 评论