自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

普通读者_博客

一个默默耕耘的农夫

  • 博客(41)
  • 资源 (3)
  • 收藏
  • 关注

原创 程序系统挂机常见原因(出现?? t)

一、内存越界1,一般设置数据时,要合理赋值相关数据大小,一旦越界,将会出现各种异常情况。常出现原因包括:1,数组长度越界2,数据大小越界3,堆栈溢出二、硬件中断三、程序Bug程序逻辑问题(有一种问题叫做编译正常但却无法跑程序)待续~预防挂机方法:在每一个数据添加前检查好数据大小,进行预判断;确认好相关数组内存堆栈大小!挂机寻找Bug步骤1,查看是否存在逻辑问题2,检查硬件是否支持(内存大小)3,检查内存是否越界(因为可出现情况过多检查过于繁琐!放在最后进行检查)...

2020-08-27 14:20:13 522

原创 Github建立远程库

防止修改代码无法修复编写了几天的程序,改来改去,甚是担心无法复原,所以决定使用git进行整个程序过程管理。主要学习是参考廖雪峰老师的git讲解进行学习的!加油,一步步完善!

2020-05-24 20:05:49 472

原创 博客规范V1.0

如何有效的书写博客1、搭建框架,梳理所写内容及层次2、学习内容,并抓住关键节点进行深究3、根据框架,填写相关内容,确保内容精简干练4、每学习有感,必当积极进行补充,使内容更加充实5、所写博客必当按照层次顺序进行书写,不可随意编撰,使得文意杂乱...

2020-03-05 12:48:03 252

原创 正则表达式

常见解析方式1、sscanf(str,"%d %[a-z]", &num, lowercase);可以看到format参数有些类似正则表达式(当然没有正则表达式强大,复杂字符串建议使用正则表达式处理),支持集合操作,例如:%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)%[aB’] 匹配a、B、’ ;三个中一员,贪婪性%[^a] 匹配非a的任意字符,贪婪性2、待定~...

2021-05-28 09:14:36 144

原创 上传JSON格式文件字符串处理

根据要求编写字符串如要求格式如下:"{"%s":{"%s%d":{"%04d-%02d-%02dT%02d:%02d:%02d.%03dZ":"%0.2f,%0.2f,%0.2f,%0.2f,%0.2f"}}}",但是直接sprintf这个直接上传不可行,因为"这个字符被认定为起始结束字符,所以需要对格式里含这个的字符进行转译,方式就是直接在字符前添加\反斜杠,如下所示:"{\"%s\":{\"%s%d\":{\"%04d-%02d-%02dT%02d:%02d:%02d.%03dZ\":\"%0.

2021-05-18 11:12:43 383

原创 IAR集成开发环境建立不同版本代码

1、基于原先版本创建新版本工程在菜单栏的Project–>Edit-Configuration中增删改各个版本,通常建立一个Debug和一个Release版本,每个版本拥有不同的工程配置文件,都对应着一种配置,互相是独立的,但是都共享源文件。可以在Workspace下拉栏中选择,直接在不同的配置间切换。2、创建不同版本宏定义右击工程头文件,在C/C++ Compiler下找到Defined symbols,直接在其中添加需要的宏定义变量,即可实现全工程使用,方便快捷,不需要代码中一 一调

2021-05-17 14:21:15 827

原创 STM32重启原因

重启原因寄存器(RCC_CSR)地址:0x94参考:芯片参考手册(RCC中寄存器RCC_CSR)1. 低电量重启: 0x84002. 窗口看门狗复位重启: 0x44003. 独立看门狗复位: 0x24004. 软件复位: 0x14005. POR/PDR复位: 0x0C00(掉电复位)其中从31位上依次顺序1. 低功耗复位标志2. 窗口看门狗复位标志3. 独立看门狗复位标志4. 软件复位标志5. BOR复位标志6. 引脚复位标志7. 选项位加载器复位

2021-03-04 11:38:41 2592 1

原创 2021-02-24

后续计划好久没更了,自从上班以来,就放弃自我升华,现在从头来过。后续将逐步开始从翻译开启。最近在用stm32l4系列芯片开发,想了解一下最基层的相关知识,就从官方参考手册开始,顺便联系一下英文,提升一下翻译能力,这将是一个漫长的过程,特此开头纪念一下,后期翻译结束在进行一次更博,不知道年底能否结束工作!加油!!!...

2021-02-24 22:24:06 46

原创 结构体大小判断

1、结构体第一个成员的地址和结构体的首地址相同2、结构体每个成员地址相对于结构体首地址的偏移量(offset)是该成员大小的整数倍,如果不是则编译器会在成员之间添加填充字节(internal adding)。3、结构体总的大小要是其成员中最大size的整数倍,如果不是编译器会在其末尾添加填充字节(trailing padding)。详见:https://blog.csdn.net/giraffe_255/article/details/88406249...

2020-10-16 14:56:46 558

原创 MOS管使用学习

一、学习有感1,作用:开关导通、电路隔离(单向导通)等作为开关导通时,需要满足一定条件,才可导通电路;作为电路隔离时,与二极管相比,mos管隔离不会产生压降,适用于一定的电路!2,P、N管学习3,导通时电流方向等详细参考:https://blog.csdn.net/weixin_38491862/article/details/80274292...

2020-09-25 11:37:01 226

原创 Source Insight背景颜色设计分享

安利一波好的编译软件----source insight本人比较喜欢暗黑风格,一来比较炫酷,二来保护眼睛~首先从好的设计界面开始介绍,如图~详细配置文件参考:https://download.csdn.net/download/weixin_40692163/12753039详细使用介绍待续~欢迎沟通交流 ....

2020-08-26 14:38:22 144

原创 IAR程序下载起始地址以及加入BOOTLOAD

一、如何加入bootload 首先打开J-flash lite(J-link文件夹中),修改芯片类型,然后打开bootload.bin文件,进行下载二、如何设置起始地址下载在上面设置相应的起始地址,一般如果设置bootload的话,起始地址防止bootload之后。起始地址一般在system文件中修改或者extflash_stm32…文件中...

2020-08-10 10:46:15 3203

原创 数据打印输出寄存器方法

数据打印输出(寄存器方式)最近在运用操作系统过程中,遇到一个问题,就是当2个任务函数同时调用一个hal库函数时,会发生异常情况,导致数据输出存在bug。经过一番检查之后,发现可能是库函数调用过程中,相关寄存器标志位未来及更改,就进入另一个任务函数中执行另一个hal库发送函数,使得判断异常。为解决这个办法,可自行通过编译寄存器发送函数,直接对寄存器进行操作,实现过程透明化,便于理解,也可以防止程序出现异常。UARTx->DR=USART_RX_BUF[t]; //发送一个字节到串口,直接通过寄存

2020-08-04 17:16:22 1003

原创 关于调试输出printf移植问题

关于printf移植的相关问题一、 移植printf时,直接添加以下函数#if defined ( __ICCARM__ ) //IAR使用//重定义fputc函数 int fputc(int ch, FILE *f){ while((USR_Sensor->ISR &0X40)==0);//循环发送,直到发送完毕 USR_Sensor->TDR = (uint8_t) ch; return ch;}#else//加入以下代码,支持pr

2020-07-24 14:04:16 184

原创 C语言数据类型概括

详见博客:https://www.cnblogs.com/ricksteves/p/9899893.html

2020-07-20 13:47:40 75

原创 寄存器操作相关操作

一、如何读取高八位和低八位取num(16位数)取高八位:num >> 8 即num右移八位,此时读取的数即高八位值取低八位:num & 0x00ff 即将高八位直接清0,此时读取的数即低八位值二、

2020-06-29 14:34:21 1278

原创 STM32cubemx系列学习一

一、STM32cubemx系列学习–外部中断首先将IO口设置为外部中断模式,已经外部下拉,按下是PA0为高电平。在GPIO配置中配置PA0为上升沿触发。内部既不上拉也不下拉在NVIC(嵌套向量中断控制器)中,勾选EXIT Line0 interrupt使能PA0中断。右边两个选项设置抢占优先级和响应优先级。此处我们选择默认的,不修改。在这里简单介绍一下NVIC(嵌套向量中断控制器)。NVIC就是控制中断响应的。主要由三个参数,一个是中断使能,一个是抢占优先级,还有一个就是响应优先级。(优先级

2020-06-29 11:52:10 466

原创 RS485串口通信以及MODBUS协议

一、RS485串口通信1、首先对RS485芯片使能,打开5V电源信号2、对RS485芯片控制引脚使能置高(处于发送模式)、失能置低(处于接收模式)3、控制RX、TX进行相应模式下的数据接收与发送的功能(此步骤与普通串口通信差不多)二、MODBUS协议详见:https://blog.csdn.net/brucezcg/article/details/70340361...

2020-06-27 15:20:14 1864

原创 串口通信基本常识

初学串口通信,需了解0X8000以及0X4000是什么意思!参考:https://blog.csdn.net/CALL_LKC/article/details/74375126

2020-06-21 22:24:45 431

原创 查找资料最划算经验!

查找器件驱动,元器件数据文档最方便的方法就是上某宝!找相关店家,一般都会有相关产品介绍或者是资料下载连接,一般这种方法最为直接快捷!

2020-06-18 12:41:13 117

原创 关于hal库的相关学习

一、各类函数用法1,延时函数用法直接调用HAL_Delay()函数即可,单位是ms。2,二、使用stm32cubemx的hal库注意事项1,首先编程时尽量编写在给定编写区域,方便更改引脚型号且不会改动已编写程序。(如果发现引脚定义出错,或者需要添加新定义,则直接在图形界面上直接编译即可!方便简介,同时注意引脚定义特性,根据需要进行定义。)待续~...

2020-06-18 11:55:06 301

原创 电机以及编码器学习

电机以及编码器学习具体参见https://blog.csdn.net/qq_31530791/article/details/80659439https://blog.csdn.net/qq_38721302/article/details/83448078https://blog.csdn.net/qq_38721302/article/details/83447870

2020-06-02 11:52:18 1947 4

原创 逻辑分析仪使用

逻辑分析仪使用为了方便调试设备,以及输出参数,此处学习使用逻辑分析仪具体参考https://blog.csdn.net/litingxiaohu/article/details/86304107

2020-06-02 11:49:38 306 2

原创 端口配置

串口配置APB2负责AD,I/O,高级TIM,串口1。APB1负责DA,USB,SPI,I2C,CAN,串口2345,普通TIM

2020-05-31 15:30:20 826

原创 添加MPU6050陀螺仪模块

添加MPU6050陀螺仪模块又是新的一天,今天开始撸MPU6050模块!平衡小车最重要的就是平衡,加入MPU6050陀螺仪模块可以有效控制小车得以平衡!

2020-05-30 13:53:39 693 2

原创 添加超声波模块、OLED显示以及内存配置

添加超声波模块以及OLED显示经过正点原子以及系列配置文档的学习下,成功向操作系统添加超声波模块以及OLED,简要实现了超声波测距串口数据传回以及oled显示数据功能主要遇到的问题如下1、引脚重复定义问题由于测试函数于最终移植函数之间存在差异,因此,在引脚配置问题上,需要重新进行引脚分配,优化空间处理!使其最终在开发板上正常使用2、任务函数内存配置问题关于内存配置问题,在FreeRTOS中是非常重要的一个环节,也许最终编译没有问题,但是一旦内存配置过低,就会导致程序崩溃卡死(如同拿一个2G内存的

2020-05-30 00:14:09 576

原创 学习结构体以及宏定义用法

学习结构体以及宏定义用法许久没有用过结构体以及宏定义了,今天暂且放下手头工作,先学习书本知识,后续补上总结。- - - - - - - - - - - - - - - - - - - - - - - - - - 学习小结 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1、结构体2、宏定义...

2020-05-29 15:15:43 1091

原创 关于Use MicroLIB是否勾选问题

关于Use MicroLIB是否勾选问题Stm32芯片调试中经常用到串口来打印一些数据,因此如果能使用类似windows的Console中的printf就很完美了~方法1–使用微库:1、使用微库(平台式keil-MDK),点击“魔术棒” Target标签下有个Use MicroLIB—勾选。2、包含头文件:#include “stdio.h”3、Printf重定向,修改fputc()函数的内容~int fputc(int ch, FILE *f){ USART_SendData(DEBUG_

2020-05-29 11:51:22 7458 9

原创 STM32引脚配置的几种模式

STM32引脚配置的几种模式1、 浮空输入(默认状态):GPIO_Mode_IN_FLOATING 引脚自身视为开路,电平由外部电路决定,不能输出;2、上拉输入:GPIO_Mode_IPU 与浮空输入类似,但当外部电平不确定时,会被拉至高电平;3、下拉输入:GPIO_Mode_IPD 与浮空输入类似,但当外部电平不确定时,会被拉至低电平;4、 模拟输入:GPIO_Mode_AIN 用作内部AD采样脚;5、 通用开漏输出:GPIO_Mode_OUT_OD

2020-05-29 10:02:28 5009 1

原创 测试超声波程序

超声波测试忙碌了一天,就为一个超声波程序!其实编写一个超声波程序还是简单的,主要就是偷懒,直接移植别的初始化程序,最终出现bug无法修复,苦恼半天,所以还是不要偷懒,一步一步从底层写起来!!!其实也不算什么bug,就nm串口重复定义导致超声波回馈信号引脚无法正常读取其回馈电平信号导致的,在翻看无数遍芯片手册和程序代码后,改了一个小小的引脚号,一切恢复!!!反复耕耘,不要想着偷懒啊!明天操作系统移植走起!!!加油,过几天弄好了就投简历去上班吧。...

2020-05-28 23:02:52 387 1

原创 将OLED写入操作系统

添加OLED继续之前的学习,今天任务是添加OLED,这方便观察程序实时运行状态- - - - - - - - - - - - - - - - - - - - - - - 分割线 - - - - - - - - - - - - - - - - - - - - - - - -今天,算是值得被永远记住的一天吧,考研失利!看到最终录取信息时没有自己难免有点伤感,不过作为一个程序猿,更要努力加油,希望不要被这些事影响一辈子!走出去,找份工作,继续耕耘!加油,相信你是可以的!- - - - - - - - -

2020-05-28 10:50:59 414

原创 FreeRTOS移植 - - bug

FreeRTOS移植各种bug1、不同芯片的keil配置具体细节参见移植数据文档,主要修改包括:Device(芯片选择);Taeget(ARM Compiler设置);C/C++(Define以及Include Paths选择);编译link选择以及flash型号选择2、相关C文件以及函数修改具体细节参见移植数据文档,主要修改包括:delay函数修改;sys.c文件的修改;usart.c文件的修改;添加startup_stmXXXXX.s文件;专用于FreeRTOS系统的宏定义配

2020-05-26 22:46:21 218

原创 电脑拓展显示器软件显示不清晰问题

电脑拓展显示器软件显示不清晰问题 电脑外接显示器,结果软件在外接显示器上显示模糊,解决办法如下: 首先先检查电脑分辨率与显示器分辨率是否相同 其次通过设置dpi来解决软件在屏间转换过程的缩放问题 方案二亲测有效!不过可能显示上大小不好控制。...

2020-05-25 20:04:20 5004

原创 移植FreeRTOS

移植FreeRTOS鉴于学习为目的,打算以FreeRTOS为操作系统建立整个系统框架移植过程中,需要参照相关文档一步步将系统移植至STM32F1上!第一次,完成移植大概花了3小时,解决各种小毛病后面如果继续移植其他F1系统,则直接移用第一次配置好的文件即可!花了一个下午就完成了一个使用操作系统点灯的效果,后面仍需努力!...

2020-05-24 17:41:51 203

原创 Link相关问题

STlink相关问题STlink下载程序后,程序无法直接运行,需要按复位键或者拔电操作,程序才开始运行。因为下载完成后,ST-LINK Utility控制权还未交还给MCU,断电再通电能正常运行,就OK了。

2020-05-24 12:23:58 286

原创 keil的bug之家

Keil常见bug问题解决方案1,stm32f10x.h(298): error: #67: expected a “}”常用解决办法,将define中只保留如图字样即可!

2020-05-24 00:20:25 504

原创 电脑常见问题 - - 小白集总

电脑常见问题集总一、电脑第三方软件显示模糊问题具体方法参见此链接:https://article.jd.com/?id=100425089 试过可用,简单粗暴!

2020-05-23 22:44:07 345

原创 平衡小车学习日志

平衡小车(一)一、准备材料(1)、带编码器电机2个(2)、STM32F103最小系统板一个(3)、TB6612FNG电机驱动一个(4)、MPU6050陀螺仪一个(5)、电压控制模块一个(6)、蓝牙一块(7)、超声波模块一个(8)、OLED显示屏一块(9)、螺丝螺母以及亚克力板若干二、搭建环境(1)、软件- - - KEIL5三、组建大概框架(1)、先完成简要程序下载试用最小系统板(2)、完成蓝牙模块部分程序(3)、完成超声波以及陀螺仪程序部分(4)、完成电机控制部分(5)

2020-05-23 10:46:07 249

原创 微机原理学习(3)

2020微机原理学习第三讲1、微机程序设计- - -典型程序(1)数据传送指令(2)统计程序(3)字节或字相加程序(4)求极值程序(5)排序程序(6)代码转换程序未完待续~...

2020-03-05 12:38:56 205 4

原创 微机原理学习(2)

2020微机原理学习第二讲1、8086/8088指令系统(1)数据传送指令一般格式:MOV A,B;功能:CPU把一个字或一个字节的内容从B(源操作数)传送至A(目的操作数)注意:目的操作数不能为立即数; 目的操作数为段寄存器时(CS不能为目的操作数),源操作数不能为立即数,因为段寄存器无法直接读取,需要通过通用寄存器间接读取 两操作数不能同时为存储器操作数。如:...

2020-02-27 20:35:28 529

sourceinsight界面颜色设计文件.7z

针对SourceInsight的编译界面的背景颜色设计~背景主打黑色设计(匹配最新sublime颜色设计而来)

2020-08-26

数码管的动态显示与定时器

定时器:每经过一个机器周期,寄存器加1。当寄存器装满的时候溢出。 第一:设置定时器工作模式寄存器TMOD。 第二:设置计数寄存器的初值。 第三:设置定时器控制寄存器TCON。

2020-02-27

DS1302实时时钟c语言基础编程

运用51单片机,进行简单编程,通过对数码管端口的控制,实现实时时钟的目的。(此程序需包含一块开发板,一个LED数码管,一个下载器)

2020-02-27

空空如也

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

TA关注的人

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