自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 因芯片容量引起的程序不运行解决记录

今天折腾一下午解决一个主控程序未运行的问题。最终结论是芯片容量不足。具体方法记录如下:1.点开小魔法棒查看芯片的容量2.双击工程打开.map文件查看内存分配情况从图上可以看到中间的划线部分有个很大内存的分派(0x15000),因为heap_4引发,而heap_4为FreeRTOS部分,所以去修改FreeRTOS中的堆分配的配置。3.原分配大小现将该值改小。现0x20015c30+0x00002000明显大于图1中的0x20000000+0x10000。所以程序不能正常运行。设置数值可以通过

2021-03-17 17:43:14 412

原创 记一次解决HardFault_Handler

  今又一次遇到hardfault_handler。本来用的好好地程序在ina220里添加了一个电流传感器后突然出现这个问题。一开始打算按照网上的方法通过堆栈之类的东西来定位出错的代码,结果发现在进入中断时,我的LR寄存器内容与网络上显示的进入中断时情况不同,反而类似正常运行时的值。于是有抓到了大佬过来解惑。  一开始请教大佬问进入中断后定位错误代码的方法,大佬平常使用的就是网络上最通用的方法,直接通过Call Stack Window 弹出“Call Stack + Locals”对话框。然后在对话框中

2021-01-28 13:55:58 440

原创 IIC时钟频率影响读取传感器问题

  调试一个IPMC已经快两个月了,这期间IIC读取温度传感器和电流传感器一直没有得到应答。最后发现是IIC时钟频率的问题;一般来说频率越高,传感器不应答的可能性越大;  同时延时函数是单纯的for循环,for循环的时间和CPU主频有关,从今天代码查看的位置好像就是之前设置晶振的位置。  然后写个流水账记录一下今天一天的调试解决过程  1.逻辑分析仪抓模拟iic发现有正常发送从机地址,可是完全无应答。(顺带发现逻辑分析仪的解码错误概率还挺大)  2.求助项目经理,得到线索;主控程序有使用iic读取传

2021-01-27 17:10:39 1018 1

原创 不要随便更改keil配置

记录人生第一次切实参与研发任务

2021-01-05 17:42:41 227

转载 git使用

https://shockerli.net/post/git-flow-guide/

2020-12-27 10:29:28 59

原创 FreeRTOS函数记录

  这篇博客用来记录我在看代码过程中遇到的FreeRTOS相关函数。贴出来网络上的解释、个人理解或是手册上的官方注释。因为个人学习记录所以内容大部分源于其他的帖子、论坛且内容比较混杂。贴一个有绝大部分函数解析的博客:https://www.wenjiangs.com/doc/n6rj6iey队列相关——queue.cvQueueAddToRegistry:为队列命名,并加入队列到登记管理中 void vQueueAddToRegistry( xQueueHandle xQueue,

2020-12-03 17:34:37 201

原创 关于INA226测电流、电路图

用IIC总线来读INA226传感器中分压电流寄存器的值。其中涉及到一个校准寄存器的赋值cal,这个值和pin9(IN-)、pin10(IN+)之间的分压电阻有关。手册中cal的计算方法如下:  Maximum Expected Current是pin9、pin10之间可能测到的最大电流,除以2的15次方后得到的Current_LSB直观来看就是电流精度——15位对应15个梯度。Rshunt是外部分流器——两引脚间电阻的值  这次的开发板上INA226部分的电路图如下:  一开始我只看到了pin9、

2020-11-24 11:09:16 12794 5

原创 ADC转换结果换算原因

使用ADC测量内部电压时,需要在最后的转换结果res做换算——res*3.3/4096.因为12位的ADC转换结果是以3.3伏的参考电压得到的,所以最后结果要做相应的换算。

2020-11-23 11:09:26 1501

原创 关于使用ADC测量内部电压犯的蠢

GD32测量内部电压时,因为觉得官方函数实在过于复杂(其实就是看不懂),所以写的寄存器版本。测试的电压标准为12V,但测试结果大概都在1.8~1.9。最后比对成品代码发现是没有考虑两个电阻的分压……又一次蠢到了自己。果然乘以分压比例后得到正确结果。...

2020-11-23 11:00:49 965

原创 GD32F103RG——FreeTROS相关

打印ERROR:…\FreeRTOS\portable\RVDS\ARM_CM3\port.c,244FreeRTOS创建的任务一定要有while(1)让任务一直运行,否则会报以上错误。

2020-11-20 11:20:54 398

转载 I2C总线

I2C总线是一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。  串行通信:传送的信息按一定的格式编码,然后在单根传输线上一位一位地顺序传送,传送完一个字符,再传送第二个。  同步通信:在约定的通信速率下,发送端和接收端的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送和接收数据时具有完全一致的定时关系。  在计算机科学里,大部分复杂的问题都可以通过分层来简化。如芯片被分为内核层和片上外设;STM32 标准库则是在寄存器与用户代码之间的软件层。对于通

2020-11-09 18:03:04 616

原创 stm32使用printf实现串口打印原理

  标准库函数的默认输出设备是显示器, 要实现在串口或 LCD 输出,必须重定义标准库函数里调用的与输出设备相关的函数 .例如 :printf 输出到串口,需要将 fputc 里面的输出指向串口 (重定向 ),方法如下 :  只要自己添加一个 int fputc(int ch, FILE *f) 函数,能够输出字符就可以了。#ifdef __GNUC__ /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->S

2020-11-08 12:10:59 3464

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除