
STM32
STM32开发
知否,知否
世事洞明皆学问
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM8L152C6T6+IAP详解,包教包会
STM8L152C6T6:Flash 32KB RAM:2KBIDE:IAR for STM8 V3.10.2QQ:754660251IAP原理非常简单,首先在bootloader程序中接收(串口、spi、I2C。。。)第二个程序的代码,并写入Flash中,然后跳转到第二个程序首地址,开始运行第二个程序,也就是说我们需要写两个程序:1.BootLoader 程序 2.用户...原创 2018-03-16 08:48:48 · 6041 阅读 · 8 评论 -
STM32F10x从零开始配置时钟
实际上,对于STM32F10x系列的芯片,如果使用库函数方式开发,芯片的时钟初始化函数已经写好,并且在启动文件(例如startup_stm32f10x_hd.s)中被自动调用,在进入main函数之前,系统以及外设时钟均配置完成,main程序中不需要对时钟再进行任何配置,直接编写应用程序即可。但是作为一个底层驱动玩家必须要打破砂锅问到底,看看STM32F10x系列芯片的时钟系统到底是怎么样的以及如何配置时钟,下文将着重分析STM32F10x的时钟系统以及用寄存器方式从零开始一步一步配置时钟。一、开发环境原创 2020-05-18 22:13:50 · 1941 阅读 · 0 评论 -
STM32F030xx硬件SPI调试记录
笔者最近调试STM32F030F4这颗芯片的硬件SPI,本以为将F103的程序直接移植过去就可以,但是却出了很多问题,故在此记录一下,避免后面再走弯路,顺便也给广大网友做一个前车之鉴。注意:本文使用的是STM32F030标准库(V1.0.0 23-March-2012版本),使用HAL库没有此问题,可以略过本文。1.STM32F030的硬件SPI初始化比F103多了一个配置函数。...原创 2020-01-02 14:32:14 · 6049 阅读 · 4 评论 -
单片机内部FLASH的字节操作
一般32位单片机的内部FALSH是不支持字节操作的,有的可以按字节读取,但是不能按字节写入。而且,一般单片机内部FALSH擦除的最小单位都是页,如果向某页中的某个位置写入数据,恰好这个位置的前面存了其他数据,那么就必须把这页擦除,存的其他数据也会丢失。实际上就是说内部的FALSH不好做改写的操作,如果有很多数据需要存放,最好是分页存储。这也是FALSH与E2PROM最大的区别,后者支持按字...原创 2019-12-16 10:36:14 · 9061 阅读 · 0 评论 -
一种单片机串口调试的巧妙方法
printf("%s %s\r\n" ,__DATE__ ,__TIME__ );//日期 时间printf("%s %s %d\n",__FILE__,__FUNCTION__,__LINE__);//文件名、函数名、行号void DBG_STRING(char *title, void *pvbuff, unsigned int u32Len){ unsigne...原创 2019-12-11 16:04:19 · 615 阅读 · 0 评论 -
SysTick中断是否能够无视一切外设中断?
针对STM32的SysTick中断,网上有很多说法,有人说SysTick是属于内核里面的中断,除了NMI等不可屏蔽中断,SysTick可以无视一切外设中断,即使外设中断的抢占优先级高于SysTick中断,对于这种说法,我本人的态度是半信半疑的,于是,我做了以下实验来进行验证。实验芯片:STM32L052中断类型:SysTick 、LPTIM1(update)NVIC中断寄存器组:2(2...原创 2019-10-21 15:03:12 · 1858 阅读 · 0 评论 -
STM32F7QSPI学习笔记——读写N25Q128
一、QSPI接口介绍QUADSPI 是一种专用的通信接口,连接单、双或四(条数据线)SPI Flash 存储介质。该接口可以在以下三种模式下工作: 间接模式:使用 QUADSPI 寄存器执行全部操作,支持对FALSH进行读、写、擦除、锁定等操作。 状态轮询模式:周期性读取外部 Flash 状态寄存器,而且标志位置 1 时会产生中断(如擦除或烧写完成,会产生中断) 内存映射模式...原创 2019-10-06 14:24:40 · 18702 阅读 · 3 评论 -
J-link下载出现Verification of RAMCode failed @ address 0x20000000问题的解决
用Keil或者直接用J-Flash程序下载STM32芯片程序时,J-link可以识别芯片,j-Flash中可以Connect成功设备,但是擦除、下载时出现Verification of RAMCode failed @ address 0x20000000错误。原因是:1.SWD总线布线太长或者不规范,jlink下载速度过快(4MHZ),导致出现上述错误,将Jlink速度降至20...原创 2019-02-19 11:46:20 · 24347 阅读 · 16 评论 -
STM32F407Z 模拟串口(115200波特率)
PCB板打样回来发现串口1 TXD 和RXD 与CH340的TXD RXD没有交叉相连,导致串口1无法使用,于是将错就错,采用模拟串口的方式弥补了这个错误。波特率可达115200,支持printf函数。#include "sys.h"#include "delay.h"#include "led.h"#include "stdio.h"#define TX_L() GPIO_Res...原创 2019-01-28 16:29:49 · 5124 阅读 · 2 评论 -
STM32快速读写AT24C16 代码 模拟I2C
本帖只适用AT24C16及以下的芯片,AT24C32及以上的芯片读写方式不一样,故不适用!!!如果你的代码可以正常读写24C01/02,直接拿来读取24C16是可以的,但是只能读取256字节。AT24C16与AT24C01/02/04/08 不同,它引脚的A2,A1,A0是无效的,也就是它没有自己独立的地址,总线上只能挂一个AT24C16设备。AT24C16总共2048字节,分为128...原创 2018-11-05 11:27:31 · 8366 阅读 · 7 评论 -
STM32Fatfs遍历文件(C语言实现)
两种方法二选一: //遍历文件//path:路径//返回值:执行结果u8 mf_scan_files(u8 * path){ FRESULT res; char *fn; /* This function is assuming non-Unicode cfg. */ char *p; #if _USE_LFN fileinfo.lfsize = ...原创 2018-08-17 16:18:52 · 7479 阅读 · 0 评论 -
STM32F103RCT6+USART3+UART5初始化代码
USART和UART的区别就是:USART支持同步收发,UART只支持异步收发同步模式:USART 需要同步始终信号USART_CK,通常情况同步信号很少使用,因此一般的单片机UART和USART使用方式是一样的,都使用异步模式。1>USART3初始化void USART3_init(void){ GPIO_InitTypeDef GPIO_InitStructure...原创 2018-09-11 09:21:38 · 19316 阅读 · 2 评论 -
STM32 串口3 总是进入接收中断
近日,调试stm32f103串口3 发现一个奇怪的问题USART3------------RXD----------PB11 悬空会导致程序频繁进入串口接收中断!!! //USART3_RX PB11 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_...原创 2018-08-29 11:02:18 · 3661 阅读 · 4 评论 -
STM32F103RCT6+串口DMA方式接收定长数据
1.接收缓存数组初始化#define USART_REC_LEN 100 //定义最大字节数 100u8 USART_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.2.串口初始化void uart_init(u32 bound){ //GPIO端口设置 GPIO_InitTypeDef GPIO...原创 2018-08-23 12:56:45 · 5488 阅读 · 1 评论 -
STM32IAP程序和APP相互跳转卡死问题
不管是Bootloader(这里指用户自定义的Bootloader程序)跳到APP,还是APP跳到Bootloader,再跳转之前必须保证以下几点1.向量表正确偏移2.栈顶指针合法(即栈顶指针必须落在你的芯片的SRAM区域内)3.清除用到的所有中断标志位以及失能当前中断特别是第3点,假设Bootloader里用到了定时器更新中断,但是从bootloader跳转到APP之前没有清除该...原创 2018-08-13 11:43:07 · 7897 阅读 · 3 评论 -
stm32中关于NVIC_SetVectorTable函数使用的疑惑与理解
原帖:https://blog.youkuaiyun.com/u010464679/article/details/54630793先描述下这几天碰到的一个奇怪的问题:一个基于stm32的工程中使用到了IAP编程,其中boot空间预留长度为0x6100,实际boot的bin文件大小为21.1KB,具体为21633Byte.我在最开始调试时对于IAP编程的app程序直接下载到单片机中,程序工作一切正常,...转载 2018-08-04 21:53:37 · 2413 阅读 · 0 评论