- 博客(52)
- 资源 (4)
- 收藏
- 关注
原创 一种低资源占用、非阻塞式按键检测(包含按键消抖,区分短按、长按、连按等)
按键检测是一种很基础的嵌入式应用,该案例提供了一种低资源消耗,非阻塞式的按键检测功能,能区分长按,短按。还可以根据自己需要添加连按触发事件。
2024-05-27 11:34:54
181
原创 STC 51单片机仿真总结
工作需要用了一段时间STC的51单片机,调试非常不方便,虽然STC声称可以在线仿真,但我用的型号是STC8A8KSA12,调试功能不是很好用。现将调试过程总结如下。芯片:STC8A8K64SA12工具:STCU8下载仿真器软件:STC-ISP v6.89 、keil C51使用步骤:1、添加stc头文件到KEILc51当中stc-isp--->keil仿真设置 点击添加型号和头文件到keil按钮 2、 添加成功后keil软件设置仿真com...
2022-04-21 17:15:56
6815
原创 一文讲清楚大小端模式,字节对齐与左右对齐
目录大小端一、什么是大小端模式二、为什么会有大小端之分三、怎样判断大小端1、通过强制类型转换截断2、利用联合体共享内存的特性,截取低地址部分字节对齐1、什么是内存对齐?2、为什么要内存对齐?3、内存对齐规则?4、C++如何进行内存对齐?ADC读取左对齐与右对齐1.右对齐数据读取问题2.左对齐数据读取问题大小端一、什么是大小端模式一个32位的2进制在内存中存储时有两种发布方式:高字节 对应 高地址 -----------.
2022-04-14 14:34:56
4088
原创 keil C51使用printf函数
在使用printf函数之前需要注意亮点,一是调用头文件stdio.h,二是重定义putchar发送单个字符函数。这一点和MDK中开发AMR处理器不太一样,后者重定义的函数名fputc。写个测试程序,不断通过串口发送一个字符串:#include <STC15F2K60S2.H>#include "stdio.h"#include "intrins.h"void Delay1000ms(void);void UartInit(void);void main(void){
2021-06-30 11:00:24
8135
2
原创 学习笔记:编译内核scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory
Ubuntu版本18.04Linux内核版本5.10.1编译命令脚本#!/bin/shmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distcleanmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_defconfigmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfigmake ARCH=arm CROSS_
2020-12-21 11:32:43
544
1
转载 Make menuconfig的遇到的错误总结
Make menuconfig的遇到的错误总结文章搬运之原文列一下Make Menu过程中遇到错误(Ubuntu18.04):Q1:3.14.38的内核root@simon-virtual-machine:/home/simon/FeiLing/src/linux-3.14.38# make menuconfig*** Unable to find the ncurses libraries or the*** required header files.*** ‘make menuconfi
2020-12-21 10:21:52
2651
1
原创 内联函数的使用与引用
内联函数的执行过程与带参数宏定义很相似,但参数的处理不同。带参数的宏定义并不对参数进行运算,而是直接替换;内联函数首先是函数,这就意味着函数的很多性质都适用于内联函数,即内联函数先把参数表达式进行运算求值,然后把表达式的值传递给形式参数。内联函数与带参数宏定义的另一个区别是,内联函数的参数类型和返回值类型在声明中都有明确的指定;而带参数宏定义的参数没有类型的概念,只有在宏展开以后,才由编译器检查语法,这就存在很多的安全隐患。使用内联函数时,应注意的问题: 1)内联函数的定义性声明应该出现在对该
2020-12-03 10:19:06
1303
原创 记录下自己做的MPU6050陀螺仪模块
话不多说,上图硬件PCB 3D图焊接好实物图(左)和维特智能JY61模块(右)对比自己做练手的东西,没有做半孔工艺(也叫邮票孔,半孔工艺费150块),嘉立创5块钱还包邮,没有用DMP,滤波自己做用了一阶互补滤波,Kalman滤波可能是自己参数调的不是很好,没有一阶滤波响应快,稳态时波动跟一阶滤波差不多就用了一阶互补滤波了,响应比较快。上波形图动态时跟随性很好,数据也比较平滑稳态时波形Z轴用了两种滤波效果还不错,±0.05波动,pitch 和roll ±0.1,
2020-08-13 12:10:47
1169
1
原创 C语言-for循环步进长度可变
话不多说,上代码: for (ii = 0; ii < length; ii += this_write) { this_write = min(LOAD_CHUNK, length - ii); if (mpu_write_mem(ii, this_write, (unsigned char*)&firmware[ii])) return -1; if (mpu_read_mem(ii, this_wri
2020-07-25 09:19:01
1516
原创 代码文件头说明格式模板
/** ****************************************************************************** * Copyright (C), 2020 -2021, Xxxxxx Tech. Co., Ltd. * File Name : * Author : * Version : * date : * Description .
2020-07-06 09:46:16
1788
原创 记录:can上电一直发送错误帧排查问题过程
硬件:mcu STM32F03C8T6 can收发器 NXPTJA050软件:keil 5.29PCB原理图如下错误现象:stm32单步调试发现在can初始化后,配置完can滤波器后can错误寄存器ESR立马检测到错误,但是can的errorcode为0找了一块正常的板子在线调试,正常的情况下在can初始化滤波器配置后can的ESR寄存器应该都是0的。因此定位到硬件错误,在换了光耦、换了TJA1050后问题依旧。于是开始怀疑是MCU的问题,将...
2020-06-18 18:15:33
2932
原创 STM32cubeMX开发 NANDflash 之H27U4G8F2E 问题记录
stm32cubemx配置时钟配置代码部分/** ****************************************************************************** * File Name : FMC.c * Description : This file provides code for the configuration * of the FMC .
2020-05-28 14:06:26
3421
4
原创 硬件I2C与模拟I2C解析
最近在做一个陀螺仪的项目用到I2C接口,STM32cubeMX自己生成的I2C驱动使用的是硬件I2C,HAL库函数直接调用即可。在读取24C02的时候没什么问题,可以直接用。但是在和mpu9250通讯的时候似乎有点问题,DMP自建总是通不过,后来改为模拟I2C后解决。也有可能是HAL库版本的问题,stm32cubeMX生成的代码中没有找到库班的本的说明。 下面对模拟I2C的代码分析 I2C IO口宏定义#define IIC_SCL PHout(4) //SC...
2020-05-25 11:27:27
2145
1
原创 MPU6050姿态融合算法
在网上看到一篇写的比较详细的文章先转过来,随后再看看MPU9250九轴姿态融合的https://www.cnblogs.com/dchipnau/p/5310088.html
2020-05-23 14:11:13
1298
原创 记录STM32F429 调试MPU9250 DMP自检不通过的问题
软件版本:MDK :v5.29 STM32cubeMX:5.6.1 STM32Cube MCU Package for STM32F4 Series 1.25硬件:正点原子阿波罗F429开发板问题描述:项目上要用mpu9250,起初自己用stm32cubemx建立的工程,循环读取mpu9250的欧拉角输出,移植官方的DMP姿态融合算法。本来用的是st官方的HAL库硬件读取I2C,在读写数据时都没有问题,但是在DMP自检时...
2020-05-23 11:31:44
3755
5
原创 FreeRTOS遇到的问题汇总(持续更新)
1、STM32运行FreeRTOS出现prvTaskExitError错误死机工程报错位置:文件port.cprvTaskExitError();任务退出错误,一个可能在任务里面写了return,另一个可能任务切换退出问题,入栈和出栈的时候出了问题。任务退出的时候调用了prvTaskExitError函数,但是正常任务是个死循环,就算删除,也是调用删除函数,因此有两种情况可能出现1. 任务没有 while(1)的死循环。2. while(1)里面有break函数。经过排查是2的问题,
2020-05-15 15:27:19
4688
原创 MDK调试问题记录(持续更新)
1、keil stm32中go to definition不能使用,出现browser的窗口是因为你要gotodefinition的标识符在你的文件中有多次被定义,keil不能知道百你需要的是那个,所以给出你browser窗口,让你自己去找.你把browser窗口向上调度大一些,就能看到你要找的标识符专的所有列表,你单击列表中的一个标识符,在右边的窗口会给出这个标识符在本文件内的所有连接,其中第一个是定义,其余是引用(分为属读和写).2、keil mdk调试过程中查看局部变量的方法在调试..
2020-05-15 10:32:03
974
原创 starup_stm32f429xx.s 文件详解
;******************** (C) COPYRIGHT 2015 STMicroelectronics ********************;* File Name : startup_stm32f429xx.s;* Author : MCD Application Team;* Version : V1.3.2;* Date : 13-November-2015;* Descript.
2020-05-15 09:53:14
1563
原创 巧用loopback模式,定位CAN阻塞问题
最近做的一个can通讯项目,软件在开发板上运行的时候跑的没有一点问题,在项目的PCB上跑的时候can发送总是阻塞在检查can邮箱是否空闲里无法跳出,can发送函数如下:/*** @brief * @param argument: * @retval */uint8_t Can_TxMessage(CAN_HandleTypeDef* hcan, Message* TxMessage...
2020-04-30 18:07:39
4164
1
原创 MDK调试过程中遇到的版本问题汇总
1、MDK调试时报Jlink断点错误提示断点太多?我只打了3个断点2、每次打开调试报下面警告,非正版警告?3、单步调试时,运行几步就弹窗报错点击“确定”后自动退出调式模式...
2020-04-09 15:28:07
1120
原创 关于使用JLINK在MDK中调试时时间不准确的问题
参考了下面的资料,设置成功https://www.eefocus.com/lee13076091101/blog/15-10/320861_57a54.htmlJLINK在MDK中调试时,调试时间和实际时间不符的情况,将解决方法记录下来: 一、先说说仿真方式SWD与JTAG区别 (1) SWD 模式比 JTAG 在高速模式下面更加可靠。在大数据量的情况下面 JTAG 下载程...
2020-03-27 22:10:16
1528
原创 记录问题--------使用STM32cubeMX FREERTOS 创间消息队列编译报错
stm32cubemx 版本5.6.0keil版本5.29.0freertos.c中代码/* Includes ------------------------------------------------------------------*/#include "FreeRTOS.h"#include "task.h"#include "main.h"#incl...
2020-03-19 22:39:56
1406
1
原创 STMCubeMX5.60版本CAN使用loopback模式自测------问题记录之时钟配置
使用芯片:STM32F407ZGT6cube软件版本:5.60软件包版本为:STM32CubeF4 Firmware Package V1.25.0 / 12-February-2020
2020-03-10 09:39:09
949
原创 can总线的特点和优缺点以及和485比较
什么是CAN总线 CAN是控制器局域网络(ControllerAreaNetwork,CAN)的简称,是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO11898),是国际上应用最广泛的现场总线之一。在北美和西欧,CAN总线协议已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,并且拥有以CAN为底层协议专为大型货车和重工机械车辆设计的J1939协...
2019-11-14 23:05:35
22425
1
转载 vscode+gcc开发stm32环境搭建
文章转自:https://zhuanlan.zhihu.com/p/26292456如有侵权,请联系删除/*操作系统:Ubuntu16.04硬件平台:原子Stm32F767+7‘RGB屏幕其他操作系统与开发板搭建环境基本差不多,注意的地方我会提到的。工程Github*/一、软件安装lVSCode为什么用VSCode,相信大家都知道,没用过的同学下载下来用用...
2019-11-08 19:41:28
1200
转载 YAML文件简介
编程免不了要写配置文件,怎么写配置也是一门学问。YAML 是专门用来写配置文件的语言,非常简洁和强大,远比 JSON 格式方便。本文介绍 YAML 的语法,以JS-YAML的实现为例。你可以去在线 Demo验证下面的例子。一、简介YAML 语言(发音 /ˈjæməl/ )的设计目标,就是方便人类读写。它实质上是一种通用的数据串行化格式。它的基本语法规则如下。大小...
2019-11-07 10:12:46
2115
转载 在C/C++程序中打印当前函数调用栈
在C/C++程序中打印当前函数调用栈文章转自:https://www.cnblogs.com/zhurizhe/p/3412369.html如有侵权请联系作者删除前几天帮同事跟踪的一个程序莫名退出,没有core dump(当然ulimit是打开的)的问题。我们知道,正常情况下,如果程序因为某种异常条件退出的话,应该会产生core dump,而如果程序正常退出的话,应该是直接或者间接的...
2019-10-18 14:47:48
273
原创 在虚拟机下运行gazebo,关于vmw_ioctl_command error Invalid argument错误
开发环境:windows10+vmware player+ubuntu14.04+ROS indigo运行:gazebo前提条件:安装gazebo: sudo apt-get install ros-indigo-gazebo-ros-pkgs ros-indigo-gazebo-ros-control问题:运行:roscore & rosrun gazebo_ros gaze...
2019-09-03 16:11:11
361
原创 解决Ubuntu更新nVidia显卡驱动后黑屏重复登陆问题
网上搜一堆VMware虚拟机黑屏的解决办法基本上都是1.以管理员身份打开命令提示符2.输入命令:netsh winsock reset3.重启电脑全都不能用 !!!垃圾现在已经完全抛弃windows了,完全用ubuntu来干活了。不是windows不好,是中国的windows生态环境太差了,随便装个国产小软件会附带给用户装一堆垃圾的东西,什么各种毒霸,各种...
2019-08-28 14:13:15
3573
原创 XShell常用快捷键
Xshell,一款强大的终端模拟工具,通过网络可远程连接Linux。Linux快捷键在Xshell中也实用的:ctrl + L 清屏ctrl + U 删除光标前字符ctrl + K 删除光标后字符ctrl + A 光标移动行首ctrl + E 光标移到行末ctrl + 左右箭头 光标移动到上/下一个单词ctrl + B 光标移动到前一个字符...
2019-08-21 11:26:51
401
原创 vim 操作命令大全(持续学习,持续更新中)
1. 关于Vimvim是我最喜欢的编辑器,也是Linux下第二强大的编辑器。 虽然emacs是公认的世界第一,我认为使用emacs并没有使用vi进行编辑来得高效。 如果是初学vi,运行一下vimtutor是个聪明的决定。 (如果你的系统环境不是中文,而你想使用中文的vimtutor,就运行vimtutor zh)1.1 Vim的几种模式正常模式:可以使用快捷键命令,或按:输入命令行。...
2019-07-17 09:24:49
394
1
原创 使用虚拟机上传本地代码到gitlab
一、安装Git1、Debian或Ubuntu Linux系统上安装Git通过一条sudo apt-get install git就可以直接完成Git的安装,非常简单2、在Mac OS X上安装Git如果你正在使用Mac做开发,有两种安装Git的方法。一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/...
2019-06-19 20:02:46
1036
原创 ROS系统的串口数据读取和解析
原帖地址:https://blog.csdn.net/Tansir94/article/details/81357612一、Ubuntu下的串口助手cutecom下载:sudo apt-get install cutecom打开:sudo cutecom查看电脑链接的串口信息(名称):dmesg | grep ttyS*二、使用ROS提供的serial包实现串口通信...
2019-06-14 19:07:48
7617
4
原创 ubuntu打包压缩命令及deb安装包命令总结
.tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)---------------------------------------------.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz ...
2019-06-13 10:53:56
549
原创 ROS自定义msg类型及使用
原博客地址https://blog.csdn.net/u013453604/article/details/72903398按照博主的说明步骤catkin_make时报错查阅资料后得知:当你在package.xml中,添加完run_depend后,编译出错,显示The manifest must not cotain the following tags:run_depend,...
2019-06-12 11:15:03
890
原创 ROS笔记——创建简单的主题发布节点和主题订阅节点
原博客地址https://www.cnblogs.com/xuanxiaochen/p/6013886.html在安装好ROS后,接着学习如何创建节点和节点之间的通信方式,以一个简单的主题发布节点和主题订阅节点说明。 节点是连接ROS网络等可执行文件,是实现某些功能的软件包,也是一个主要计算执行的进程。 一、创建工作空间 创建新文件夹,名字自定义,路径也根据自己...
2019-05-17 11:26:05
1581
转载 转载02-NVIDIA Jetson TX2 通过JetPack 3.1刷机完整版
02-NVIDIA Jetson TX2 通过JetPack 3.1刷机完整版(踩坑版) - 简书https://www.jianshu.com/p/bb4587014349?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation...
2019-05-15 11:27:41
172
FreeRTOS学习资料(源码,参考资料)
2018-07-31
keil C51.rar
2013-03-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人