
STM32
文章平均质量分 84
帕斯伦川三
这个作者很懒,什么都没留下…
展开
-
ucosII堆栈利用率OSTaskStkChk()函数的使用利用OSTaskCreateExt()创建
描述不少同学都有类似经历吧,在使用ucosii创建任务时,关于任务堆栈大小设为多大合适搞的不清不楚,郁闷之下就随便整个数,比如就1024吧,反正也没见得出问题,那就不多想了。我想大多数同学都是这样做的吧。这样只是因为在一般情况下,1024确实已经足够大了,堆栈溢出的可能性很小而已。那么,如果你任务实际使用率只有很小的百分之几,一旦被你知道了,你会痛心不?我想你不痛心,μC/OS-II也会痛心的,它会觉得这个coder真是浪费啊,哈哈,这其实还好,至少只是太大导致浪费而已,万一小了那可就堆栈溢出.转载 2021-05-07 11:22:01 · 1199 阅读 · 0 评论 -
关于STM32仿真ITM调试那些事(STM32+JLINK+KEIL)
在刚刚学习的STM32单片机之后,我就想知道是否可以查看单片机内部的运行参数以及运行时间,直到看到鱼鹰的文章后,我了解到了MDK的仿真不止有断点和变量窗口,原来有很多功能。原创 2020-09-21 09:42:41 · 2520 阅读 · 0 评论 -
关于DXP的规则检查中Un-Rounted Net Constraint问题
关于DXP画板中的设计规则检查,最常见的问题之一就是未连线问题。最近在一次画板中,我明明已经连接好了线,但是莫名其妙的还是出现的未连线的提示如下:然后我经过删除附近的所有连线,终于发现了罪魁祸首。就是这条线。图中的红线就是罪魁祸首,至于他怎么出现了,我还没有找到原因。...原创 2020-09-18 13:48:06 · 2866 阅读 · 0 评论 -
关于assert_param的那点事
在STM32的库函数版本里面,我们基本在每一个函数中,我们都发现了这个函数assert_param();以GPIO为例: /* Check the parameters */ assert_param(IS_GPIO_ALL_PERIPH(GPIOx)); assert_param(IS_GPIO_PIN(GPIO_InitStruct->GPIO_Pin)); assert_param(IS_GPIO_MODE(GPIO_InitStruct->GPIO_Mode));原创 2020-09-11 19:11:23 · 796 阅读 · 0 评论 -
Altium Designer的高亮快捷键
网络节点高亮 Ctrl+鼠标左键 高亮亮度调节按钮 [ 亮度加深或 ]亮度变浅布线层高亮 shift + s原创 2020-09-05 16:07:38 · 3376 阅读 · 0 评论 -
STM32关于Undefined symbol xxx (referred from xxx.o)问题解决
这个问题主要是程序没有找到XXX函数的定义。1、没有将包含该函数的头文件包含进来。2、没有头文件里面声明该函数3、没有将该函数的.C文件加入工程里面。原创 2020-09-02 15:54:44 · 35643 阅读 · 2 评论 -
STM32程序死在HardFault_Handler的分析和解决
最近开发STM32F070F6P6项目,发现程序老是运行不了,仿真发现,程序总是死在HardFault_Handler。程序总是死在第二个初始化函数里面。上网查询资料发现STM32出现HardFault_Handler故障的原因主要有两个方面:1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。2、堆栈溢出。增加堆栈的大小。我打开了初始化函数发现初始化引脚造成了程序跑飞。这个单片机只有PA引脚,我初始化PE引脚,造成了程序跑飞,我把引脚改正之后,程序就正常运行了原创 2020-08-29 15:16:57 · 3827 阅读 · 0 评论 -
从ST网站下载STM32标准库的流程
打开搜索器,搜索ST官方网站,打开。如果英文不是很好,点击更换中文。找到STM32微控制软件,点击打开。找到标准外设软件库点击我们想要的系列,示例以F4为基准。点击获取软件。点击下载 STM32F4...原创 2020-08-27 09:36:08 · 1137 阅读 · 2 评论 -
STM32F070库函数的usart配置
延续之前的讲解,我们来配置一下串口。按照惯例,我们还是打开三个资料文件。STM32F0xxx Cortex-M0 英文编程手册.pdfSTM32F070x6xB 英文参考手册.pdfSTM32F070x6xB 英文数据手册.pdf我们首先打开数据手册看一下内核框图。我们可以清楚的看到串口1是通过两个时钟来挂载到CPU的,所以我们调用串口,先要调用这两个时钟才行。我们通过参考手册可以看到AHB和APB,但是我们发现APB有两个时钟为APB2,APB1。我们看一下内部的位的介绍就可以找到A原创 2020-08-26 14:50:08 · 1368 阅读 · 0 评论 -
STM32F070库函数的GPIO配置
最近在开发一款基于STM32F0的单片机的项目,最近开发思路逐渐清晰起来。其实一切的开发,最好的资料就是官方的开发手册,但是由于本人的英语能力较低,所以通常都会用有道词典来翻译。这次使用的单片机的型号为STM32F070P6F6,由于网上的资料较少,我们专程下载了别人的工程模板。自动从51单片机转到STM32单片机后,我就没有再直接调用寄存器,直接转到了库函数。ST公司早就开始推HAL库,但是本人理解能力较低,不是很会用。寄存器版本就没用过,大概了解一些,我们直接照着STM32库函数版本进行开发。原创 2020-08-26 11:29:56 · 1148 阅读 · 0 评论 -
基于STM32的SGP30芯片开发例程
给大家讲解以下SGP30这款芯片的开发例程。我们首先看一下芯片手册。我们可以从电气属性看到供电信息。各个引脚的功能图。芯片手册还给出了推荐电路图,这样我们就可以将芯片电路设计出来了。典型的IIC总线,所以直接使用IIC就可以通讯。这里显示了芯片地址0x58,并且说明了每个命令和返回数据都是十六位的数据,并且发送的命令的十六位包含三位CRC校验,接收的数据后面跟了八位的CRC校验。空气质量信号上面第一段这里主要说明了三件事,第一,为了保证补偿计算,这个测量信号要大于1s去发送;第二原创 2021-01-14 15:04:35 · 24941 阅读 · 42 评论 -
STM32的重复定义
最近在开发一款STM32F0的单片机的项目,在写程序的时候发现了一些关于重复定义的想法和问题。我在头文件将数据变量进行了定义#ifndef _usart_h#define _usart_h#include "sys.h"#define MAX_RX_LENGTH 50u8 USART1_RX_BUF[MAX_RX_LENGTH]; //串口1的接收缓冲区-缓冲区50个字节u8 USART1_RX_STA; //串口1接收状态位u8 USART1_RX_CO原创 2020-08-24 10:18:32 · 3065 阅读 · 2 评论