随笔分类 -  stm32成长计划

摘要:在做项目时,碰到一个问题被困扰很久,采集交流电均值时会出现结果为零的情况,但是我设计的是采集一个周期数据的均值,因此是不可能为零的。 随着不断深入寻找错误,发现是因为我采用的模板晶振为8MHZ,而我使用的板子外部晶振为25MHZ。 出现这个问题的主要原因是,之前一直使用的是F103的板子,手册上明确 阅读全文
posted @ 2020-12-20 19:51 一颗蘋果 阅读(356) 评论(0) 推荐(0) 编辑
摘要:学FreeRTOS时,每次打开函数列表都一脸懵逼?根本不知道这什么prv,v,ux是什么意思,所以还是要把它理清一下: 命名规则 u :代表unsigned。 s :代表short。 c :char。 所以类似uc,us类的变量就是unsigned char,unsigned short,分别对应u 阅读全文
posted @ 2020-05-12 12:05 一颗蘋果 阅读(635) 评论(0) 推荐(0) 编辑
摘要:stm32—LCD外设详解(5510) 图像处理,不会用LCD怎么行。本实验基于正点原子战舰开发板重新编写,正点原子的代码写的很好,但奈何本新手看了表示一脸懵逼,因此重新编写,将代码简单化,去除操作系统以及兼容性等干扰项。 写命令函数 写数据函数 读LCD数据函数 这个需要采用volatile防止编 阅读全文
posted @ 2020-03-20 22:49 一颗蘋果 阅读(2454) 评论(0) 推荐(1) 编辑
摘要:SysTick定时器详解 关于SysTick定时器,如果想从STM32官方手册去寻找该定时器,会发现并没有该定时器的相关介绍,仅有库函数介绍。由此可以看出SysTick并不是意法半导体公司设定的。从Cortex M3权威指南可以找到该定时器的详细介绍,由此可以知道SysTick定时器是在ARM芯片当 阅读全文
posted @ 2020-03-13 22:33 一颗蘋果 阅读(4679) 评论(0) 推荐(3) 编辑
摘要:外部中断实验 1. 外部中断首先需要进行中断初始化以及使用NVIC设置中断优先级 2. 设置中断响应函数 到这里中断的配置以及完成,接下来需要配置中断响应函数: 首先是中断线0的响应函数: 中断线2的响应函数: 中断线3的响应函数: 中断线4的响应函数: 阅读全文
posted @ 2020-03-13 14:21 一颗蘋果 阅读(402) 评论(0) 推荐(0) 编辑
摘要:串口中断函数详解 ARM cortex_m3 内核支持 256 个中断(16 个内核+240 外部)和可编程 256 级中断优先级的设置。 STM32支持的中断共为84个(16个内核+68个外部),和16级可编程中断优先级的设置。 AIRCR是NIVC配置中一个关键的寄存器,由于STM32有很多中断 阅读全文
posted @ 2020-03-13 11:13 一颗蘋果 阅读(6295) 评论(1) 推荐(0) 编辑
摘要:1、首先找到环境变量面板,本文会将下图中被选中路径以下的所有路径重新设置: 2、在系统变量中新建一个变量名为path1,变量值设置为要重新设置的所有路径,路径与路径之间用“;”冒号隔开,最后一个路径不需要以冒号结尾。 3、设置好以后,将%path1%作为路径放入PATH当中,这样就不会再出问题啦 阅读全文
posted @ 2020-02-29 23:37 一颗蘋果 阅读(8532) 评论(0) 推荐(0) 编辑
摘要:static __INLINE uint32_t SysTick_Config(uint32_t ticks) { // 判断 tick 的值是否大于 2^24,如果大于,则不符合规则 if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); // 初始化re 阅读全文
posted @ 2019-12-29 13:57 一颗蘋果 阅读(5892) 评论(0) 推荐(0) 编辑
摘要:出错是因为你当前运行的文件调用到了core_cm3.h,而core_cm3.h文件中包含了有IRQn_Type类型名,但是此类型名是在“stm32f10x.h”中定义的,所以你需要在当前文件包含#include "core_cm3.h"之前先包含#include "stm32f10x.h"记住,两个 阅读全文
posted @ 2019-12-29 13:45 一颗蘋果 阅读(2264) 评论(0) 推荐(0) 编辑
摘要:这种情况一般是use microlib这个选项没有勾选,勾选一下就好了 阅读全文
posted @ 2019-12-27 21:45 一颗蘋果 阅读(2102) 评论(0) 推荐(0) 编辑
摘要:SPI协议: SPI1挂载在APB2总线上,SP12和SPI3挂载在APB1总线上。 相对于I2C来说,SPI的传输速率要高得多,所以低速传感器可能用I2C,但是高速传感器用SPI还是用得非常多的。 I2C为半双工,因为只有一根线,而SPI有两根总数据线,一根可以接收数据,一根发送数据,为全双工通信 阅读全文
posted @ 2019-10-24 16:11 一颗蘋果 阅读(2613) 评论(0) 推荐(0) 编辑
摘要:DMA:Data Memory Access,直接存储器访问。主要功能是可以把数据从一个地方搬到另外一个地方,而且不占用CPU。 DMA1:有7个通道,可以实现 P->M,M->P, M->M DMA2:有7个通道,可以实现 P->M,M->P,M->M DMA初始化结构体 一、数据从哪里来,要到哪 阅读全文
posted @ 2019-10-23 16:06 一颗蘋果 阅读(3195) 评论(0) 推荐(1) 编辑
摘要:HSE时钟 高速外部时钟来源为无源晶振(4-16M),通常为8M。 HSI时钟 高速内部时钟来源为芯片内部,大小为8M,当HSE故障时,系统时钟会自动切换到HSI。 一般配置系统时钟的流程为将HSE时钟8M进行9倍频得到72M。当HSE故障时,切换到HSI为8M,这个时候系统相当于瘫痪。 锁相环时钟 阅读全文
posted @ 2019-10-19 15:09 一颗蘋果 阅读(1277) 评论(0) 推荐(0) 编辑
摘要:在学习正点原子的oled时,画点函数和清屏函数以及OLED_GRAM[128][8]这个定义让我一直想不通,128X64的分辨率。分为八页,所以是128X8,但为什么二维数组定义为[128][8]这里让我有点想不通。 偶然间看到了这个帖子:http://openedv.com/thread-8472 阅读全文
posted @ 2019-10-18 21:55 一颗蘋果 阅读(1308) 评论(0) 推荐(0) 编辑
摘要:首先是看开发指南有一段话不能理解: OLED_GRAM[128][8]中的 128 代表列数(x 坐标) ,而 8 代表的是页,每页又包含 8 行,总共 64 行(y 坐标) 。从高到低对应行数从小到大。比如,我们要在 x=100,y=29 这个点写入1,则可以用这个句子实现:OLED_GRAM[1 阅读全文
posted @ 2019-10-18 21:00 一颗蘋果 阅读(1359) 评论(0) 推荐(0) 编辑
摘要:1、使能定时器3和相关IO口时钟。 使能定时器3时钟:RCC_APB1PeriphClockCmd(); 使能GPIOB时钟:RCC_APB2PeriphClockCmd(); 2、初始化IO口为复用功能输出。函数:GPIO_Init(); GPIO_InitStructure.GPIO_Mode 阅读全文
posted @ 2019-10-17 15:40 一颗蘋果 阅读(2577) 评论(0) 推荐(0) 编辑
摘要:I2C物理层特点 1、它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个I2C通讯总线中,可连接多个I2C通讯设备,支持多个通讯主机及多个通讯从机。 2、一个I2C总线只使用两条总线线路,一条双向串行数据线(SDA) ,一条串行时钟线 (SCL)。数据线即用来表示数据,时钟线用于数据收 阅读全文
posted @ 2019-10-15 19:51 一颗蘋果 阅读(467) 评论(0) 推荐(0) 编辑
摘要:学习stm32已经很长时间了,打算把以前做过的一些小东西整理一下,写出来,以输出倒逼输入,让自己知道有哪些东西是一知半解的。 跑马灯 首先是led.h文件 前两行和最后一行是一个框架,防止头文件被重复加载 然后是led.c文件 最后是main文件 蜂鸣器 首先是beep.h文件 然后是beep.c文 阅读全文
posted @ 2019-10-02 19:27 一颗蘋果 阅读(1504) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示