自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苏州向日葵的博客

生活,技术,分享

  • 博客(64)
  • 收藏
  • 关注

原创 机器人操作系统ROS了解

ROS感性认识

2025-02-10 18:37:13 197

原创 一个printf打印格式不对造成的奇怪现象,平常很容易忽略

介绍了printf打印时,由于格式化字符不正确,可能造成的异常

2025-02-07 11:15:40 278

原创 妙用之有限状态机FSM

介绍有限状态机FSM

2024-12-24 18:24:27 247

原创 篇3:当下最火的AIGC发展现状

介绍了AIGC现状

2024-12-15 20:49:40 183

原创 篇2:深度学习模型及框架介绍

介绍了主流的深度学习模型和框架

2024-11-27 11:04:24 1019

原创 篇1:人工智能的概念及热门方向

AI概念及热门方向介绍

2024-11-27 09:54:29 445

原创 mcu上一种利用伪随机数防止mac地址冲突的方法

介绍了一种利用伪随机数防止mac地址冲突的方法

2024-11-26 14:47:18 558 2

原创 stm32f103 W5500以太网通信实现

stm32f103+ w5500 实现以太网通信

2024-11-21 16:15:04 825

原创 推荐嵌入式开发中好用的一些软件工具~~持续更新

介绍了嵌入式软件开发常用的好用的一些工具

2024-11-21 10:57:13 204

原创 通讯问题排查思路

介绍了通讯问题一般排查思路

2024-08-07 09:14:48 222

原创 CodeCompare代码比较脚本使用说明

代码比较脚本

2022-11-29 16:03:00 1876

原创 busybox命令裁剪

记录下自己裁剪busybox命令的过程

2022-08-22 10:40:27 1447

原创 根文件系统介绍

总结了下 个人对根文件系统的理解

2022-08-22 10:25:09 1113

原创 记录--编写一个能运行的简易ko

编写一个能运行的简易ko

2022-08-18 17:05:11 368

原创 堆栈(栈)的实现

链表栈#include <stdio.h>#include <stdlib.h>typedef int data_t;typedef struct linkstack{ data_t data; struct linkstack *next;}linkstack_t;linkstack_t *creat_linkstack(){ linkstack_t *head; head = malloc(sizeof(linkstack_t)); head->

2022-02-14 06:50:08 362

原创 队列queue的实现

顺序表实现##list.c#include <stdio.h>#include <stdlib.h>typedef int data_t;typedef struct list{ data_t *data; //保存数据的空间 int size; //容器能保存的元素个数 int last; //保存最后一个有效元素的下标}list_t;/*返回创建好的 空顺序表 的地址*/list_t *creat_list(int size){ list_t *

2022-02-14 06:47:33 317

原创 顺序表实现案例

范例1## list.c#include <stdio.h>#include <stdlib.h>typedef int data_t;typedef struct list{ int size; //容器能保存的元素个数 int last; //保存最后一个有效元素的下标 data_t data[0]; //不定长数组名 必须放于 结构体的最后一个成员}list_t;/*返回创建好的 空顺序表 的地址*/list_t *creat_list(int

2022-02-14 06:36:05 485

原创 冒泡,快排和树

冒泡#include <stdio.h>#include <stdlib.h>int data[] = {3,8,2,9,1,5,7,6,4}; //3,2,8,1,5,7,6,4,9int maopao(int data[],int size){ int i,j; int temp; for(j = 0;j < size - 1;j ++){ for(i = 0;i < size - 1 - j;i ++){ if(data[i]

2022-02-14 06:21:20 96

原创 单向链表及双向链表

链表#include <stdio.h>#include <stdlib.h>typedef int data_t;typedef struct linknode{ data_t data; struct linknode *next;}link_t;link_t *creat_link(){ link_t *head; head = malloc(sizeof(link_t)); head->next = NULL; return head;

2022-02-14 06:11:44 466

原创 linux网络编程

网络基本知识:TCP协议分成了两个不同的协议TCP:用来检测网络传输中差错的TCP:面向连接的数据流传输服务 可靠 适合网络状况不是很好的场合UDP:面向无连接的传输协议 不可靠,但是实时性更好,适合网络状况佳的场合socket套接字:socket是一种特殊的IO接口,也是一种文件描述符。不仅能实现本地不同进程之间的通信,而且通过网络能够在不同主机进程之间进行通信分类:流式套接字SOCK_STREAM 应用TCP通信数据报套接字SOCK_DGRAM 应用U

2022-02-11 00:27:12 1308

原创 linux shell

1、shell是一个命令行解释器,能够使用户和操作系统进行交互。命令格式(通常包括三部分,选项和参数是可选项):命令 选项 参数连续按下两次TAB键用于命令补齐,按下一次TAB键用于文件名补齐。2、shell通配符和特殊字符'*‘表示匹配任意长度的字符串,’?'表示匹配一个长度的字符管道(|):将第一个命令的输出作为第二个命令的输入,,使用管道可以将一些命令联合起来使用,得到单个命令无法实现的效果。 eg:ls /usr/bin |wc -W输入/输出重定向:改变shell命令的输入输出

2022-02-11 00:25:50 758

原创 C语言(二)

1、sizeof(fun)=1sizeof(&fun)=4 fun为函数名解释:函数名其实是一个符号表,占用一个字节,虽然函数名可以当做函数的入口地址,当做一个指针,但是并不能像指针那样占用4个字节,当取地址的时候,确定是4个字节2、存储类型auto:默认情况下,所有的变量都是autoregister:表示变量是存放在CPU寄存器中,而不是存放在内存里面,因此不能用&符号取内存地址extern:声明变量或者函数是来自外部的文件static:修饰局部变量:作用域为定义该局

2022-02-11 00:25:09 888

原创 IO与静态库动态库

一、文件IO1、什么是系统调用(文件IO)(1)用户空间进程访问内核的接口,使用内核提供 的各种功能(2)极大提高了系统的安全性和用户程序的可移植性(因为操作系统大多是多任务的,直接访问硬件会出问题)2、什么是库函数(标准IO)(1)库函数是为了实现某个功能而封装起来的API集合(用户编程接口)(2)提供统一的编程接口,更加便于应用程序的移植系统调用和库函数的区别************系统调用发生在内核空间,如果用户空间的一般应用程序使用系统调用来进行文件操作,会有用户空间切换到内核空间的

2022-02-11 00:24:10 404

原创 进程与线程

一、进程、线程特点及其关系1、多任务处理多任务处理指用户可以在同一时间内运行多个应用程序,每个应用程序称为一个任务。事实上,单核处理器同一时刻只能执行一个任务,每个任务创建时被分配时间片(几十到上百毫秒),操作系统会在当前任务的时间片用完时,调度其他任务,由于任务会频繁第切换执行,因此给用户多个任务同时运行的错觉。2、进程(1)基本概念程序是一段静态的代码,而进程是程序的一次动态执行过程,它是操作系统进行资源分配和调度的最小单元。一次任务的执行可以激发多个进程。(2)主要特性a、并发性系统中

2022-02-11 00:22:39 193

原创 C语言(一)

一、C语言背景简介1、GCC编译流程预处理 :-E -->.i文件 预处理只是做头文件的展开,宏替换,条件编译选项的判断,注释删除等工作,不会报任何错误编译:-S -->.s文件 检查代码是否有语法错误,无误后翻译成汇编语言汇编:-c -->.o文件 将汇编文件翻译成二进制机器代码链接:链接函数库,生成可执行文件这里有个点就是在预处理阶段.H文件只是包含了大量的函数声明,而没有函数的实现,这些函数的实现都被封装进函数库里

2022-02-11 00:19:41 968

原创 设计模式及编程技巧

前言为了提高自己的编程水平,优化自己的代码设计,粗略翻了《Head+First设计模式》这本经典之作(以后有时间再细读)。可惜的是设计模式一般是面向对象编程时用到的技巧,但是我现在主要是C编程,只能借鉴其思想了,毕竟万物皆对象,C也不例外。1.软件设计致力于提高“可复用”,“可维护”,“可扩展”2.变化的部分和不变的部分要抽离分开(封装变化的部分)3.针对接口编程,而不是实现编程核心是:...

2019-09-26 20:21:44 208

原创 气体传感器基本分类

电化学优点:量程大,准确度高缺点:功耗大,寿命短催化燃烧优点:零点稳定缺点:功耗大半导体优点:功耗低缺点:准确度相对差一些

2019-08-26 08:51:21 594

原创 回忆:一家芯片公司的面试经历

七月初的时候面试了本地的一家芯片公司,虽然没进去但是收获良多,整体感受芯片行业面试,无论是笔试题还是面试题问的都比较偏底层。面试里面C语言试题有几道题是关于内存操作的,当时答得不太好,这里回忆一下,写一个测试代码,验证下strcpy(p,str)代码一:不给p动态申请内存解析:p是一个指针,当不给它申请内存时,使用strcpy给它赋值,运行结果是段错误。代码二:给p申请内存空间解...

2019-08-22 19:02:50 2276

原创 字符串的解析与拼接(C语言实现)

简介最近大半年在搞一个基于NB的物联网项目,里面涉及到NB模组到移动ONENET平台的接入,整个过程需要不断发送AT指令到NB,从返回信息里解析相关参数再放入到下一条指令里面,这里以onenet平台下发数据介绍下字符串的处理方法如图,当平台下发数据123时,mcu收到字符串+MIPLWRITE: 0,18960,3200,0,5750,2,3,313233,0,0,按照接入协议,我需要在10...

2019-08-22 17:12:14 1476

原创 GIT使用简易流程

前言之前写过一个文章记录了GIT的常用命令,结果重新去看文档学习GIT使用的时候发现一俩懵逼,所以这次重新梳理一下。GIT是目前应用最广泛的分布式版本管理系统,可以脱网单机使用,而GITHUB则可以认为是网上开源代码托管平台,可以与GIT无缝对接。windows平台使用流程安装GIT,并设置去官网下载GIT,然后并安装,点击开始菜单Git Bash,出现如下窗口,则代表安装成功安装成...

2019-07-24 10:41:44 227

原创 个人成长书单

python基础《 python从入门到实践》《python基础教程》进阶《Python Cookbook》《流畅的python》应用《python3网络爬虫开发实战》《python深度学习》c语言基础 《C深度剖析》《C与指针》进阶 《C专家编程》《C语言接口与实现》《C陷阱与缺陷》《编程珠玑》通识 《深入理解计算机系统(原书第3版)》《程序员的自我修养》《Head Fir...

2019-07-15 16:31:24 364

原创 真相了,你真的了解串口通信格式吗?

前言最近在一个项目中要用到串口实现不定长数据的接收,查资料一般有两种方式,一个是串口DMA+IDLE中断,另一个是加定时器,可惜我用的华大半导体HCF030芯片,不支持串口IDLE中断,那么只能考虑加定时器这种方式了。这就牵扯到定时多久的问题,到这里,我有两个疑惑的地方,一是传送一个字节到底是传送几个bit,二是我传送多个字节的时候,中间有没有时间间隔,所以最好用示波器看一下。你眼中的串口格式...

2019-06-25 16:08:39 1026

原创 如何用示波器调试波形

序无论是做嵌入式硬件工程师,还是做嵌入式软件工程师,示波器的使用都可以算是必备技能了,因为我们在做一些牵扯到时序的项目时,遇到一些问题,看是看不出来的,用示波器抓波形往往更直观一些。恰好手头一个项目用到了SN74HC164PWRG4 串转并8位输出移位寄存器,这里以此为例讲下如何调试波形。74HC164简介1.管脚图图1是该芯片管脚图,A,B是与非门输入端,Qa~Qh是8位并行输出端,CL...

2019-03-15 22:05:20 7251 2

原创 通信协议之USB

前言USB也是当前应用比较广泛的设备,本文将挑重点对其做一些概要性的介绍,更详细的了解可以去网上找《圈圈带你学USB》这本书,属于介绍USB的经典之作。USB分类1按协议分Usb1.1 :usb1.1是标准的USB规范,高速方式的传输速率为12Mbps,低速方式的传输速率为1.5Mbps,b/s位传输速度,bps位传输速率。USB2.0:由USB规范1.1规范演变而来,传输速率达到了48...

2019-03-10 13:34:30 2083

原创 应用四 CUBEMX生成CUSTOMHID

之前这半个月的时间在搞USB自定义HID双向通信,刚开始用的是官方CUBEMX例程,但是后来遇到问题不得不自己生成USB工程代码,参考了网上的一些文档,发现还是存在一些问题导致无法枚举成功,所以这里写一个文档详细记下整个流程,供自己以后参考。所用CubeMx版本为4.16,采用芯片是stm32f373RCT6,下面是整个流程一、新建一个工程二、选择芯片具体型号如果是网上买的板子或者自己画...

2019-03-10 10:57:42 1325 1

原创 应用三 便携式甲醛检测仪(下)--- HT1622

前言在上篇文章中,着重介绍了基于I2C接口的温湿度传感器SHT30的用法,本篇文章着重介绍HX1622液晶驱动的用法。HT162x 系列是由 HOLTEK 公司开发的支持多种显示方式的 LCD 驱动芯片,内部 RAM 直接映射到相对应的 LCD 显示单元。支持串行通信方式。...

2019-03-10 00:49:09 2376 2

原创 RS485通讯介绍(附批量测试思路)

前言做嵌入式开发的无论软件还是硬件,应该经常听见这样一个概念“485协议”,但是呢,去查资料又发现好多人说“485要跑modbus协议”,姑且不论modbus是什么,协议上跑协议,有点晕。到底是怎么回事呢,请往下看。485通讯标准485是电气特性规定为2线,半双工,多点通信的的标准,它的电气特性和RS232不太一样,用缆线两端的电压差值来表示传递信号,RS485仅仅规定那个了接收端和发送端的...

2019-03-09 20:41:14 18766

原创 应用三 便携式甲醛检测仪(上)--SHT30

简介本项目是工作中做的一个便携式手持检测仪项目,集成了自家公司的HCHO,TVOC传感器,买的sht30温湿度传感器,基本功能是能通过集成的传感器检测温湿度信息,空气中甲醛含量,TVOC含量,能通过厂家定制的段码屏显示这些信息和电池电量,能通过按键控制屏幕亮度,短按亮度变暗,长按关闭屏幕。基本功能框图如下:本文将分模块对相应功能进行介绍。SHT30温湿度介绍SHT30是I2C接口的高精度...

2019-03-06 23:48:00 1605 3

原创 I2C协议知识点小结

简介I2C通信是飞利浦公司发明的一种通信协议I2C总线通信时:起始信号、结束信号、应答信号起始信号:当时钟线为高电平,数据线有高到低跳变时产生了起始信号结束信号:当时钟线为高电平,数据线由低到高电平跳变产生结束信号每次传输数据一定是8位,在第九位一定是一个应答位。应答信号:时钟线保证高电平,这期间数据线被拉低。在第九个时钟周期如果主机接收到0说明从机正常接收了数据。I2C数据的传输...

2019-03-05 22:05:34 392

原创 Bluetooth Low Energy协议介绍(下)

前言在上篇文章中,对BLE协议做了基本的介绍,分为三层,这一篇,咱们就对每一层的协议做个详细的分析,从而对整个ble协议有个把握。Controllerphysical layer任何一个通信系统,首先要确定的就是通信介质(物理通道,Physical Channel),BLE也不例外。在BLE协议中,“通信介质”的定义是由Physical Layer(其它通信协议也类似)负责。Physic...

2019-03-02 16:47:17 945

TCP RST problem Wireshark packet capture

TCP RST problem Wireshark packet capture

2024-10-14

空空如也

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

TA关注的人

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