自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 5、middle service接口实现

middle service目录结构└── plateform ├── fm33lc0xx ├── include │ ├── adc_service.h │ ├── flash_service.h │ ├── freq_service.h │ ├── fs_service.h │ ├── gpio_service.h │ ├── i2c_service.h │ ├── memory_service.

2022-02-09 13:53:34 374

原创 4、middle层简介

middle层包括两方面的内容:middle service:对驱动层接口封装,实现某一特定功能(例如:GPIO输入输出、I2C通讯、SPI通讯、串口通讯……)。middle api:对middle service接口封装,实现接口统一化处理,使得应用层代码的调用更加简单方便。middle层目录结构:└── middle ├── lib ├── Makefile ├── middle_api │ ├── include ...

2021-11-04 14:11:25 554

原创 2、驱动库文件生成

1.在windows下使用STM32CubeMX工具生成源码使用STM32CubeMX工具生成STM32G070工程后,需要把Makefile文件、CMSIS文件夹、STM32G0xx_LL_Driver文件夹拷贝到/driver_os/stm32g0xx/目录中。2.通过修改Makefile文件,生成lib_stm32g0xx.a静态库文件 修改后的Makefile文件如下,执行make clean;make命令即可生成lib_stm32g0xx.a库。...

2021-11-02 10:58:24 279

原创 1、驱动库简介

驱动层目录结构(本例程以stm32g070xx GCC为例)├── driver_os └── fm33lc0xx ├── stm32f0xx └── stm32g0xx ├── CMSIS ├── Makefile ├── stm32g0xx_hal_conf.h └── STM32G0xx_LL_Driver1.driver_os目录driver_os:为驱动层主目录,此目录下包括了不同型号

2021-11-02 10:38:30 1009

原创 0、系统架构设计

1.系统架构系统划分为三层,即业务层(应用层),中间件层和驱动层.应用层:专注于业务逻辑功能实现.中间层:为应用层服务,为应用层提供相关服务接口,也具有少量的业务逻辑.驱动层:提供硬件底层驱动程序.架构框图分层思想优点:(1).最大程度隐藏驱动代码,保护了代码的安全性。(2).接口统一,方便应用层开发。(3).方便代码管理,同步开发。2.接口标准化标准接口分为三部分:驱动层接口、中间件统一接口、应用层接口驱动接口:由官方提供的统一接口,操作芯片相关寄存器实现某一功.

2021-11-01 18:29:46 2608

原创 perl执行环境安装(Windows)

1、perl简介 Perl 是 Practical Extraction and Report Language 的缩写,可翻译为 "实用报表提取语言"。 Perl 是高级、通用、直译式、动态的程序语言。 Perl 最初的设计者为拉里·沃尔(Larry Wall),于1987年12月18日发表。 Perl 借用了C、sed、awk、shell脚本以及很多其他编程语言的特性。 Perl 最重要的特性是Perl内部集成了正则表达式的功能,以及巨大的第三方代码库CPAN。...

2021-11-01 18:06:22 1973

原创 STM32CubeMX项目SPI2 CLK信号丢失问题

前两天发现STM32CubeMX项目SPI2 CLK信号丢失问题1、使用引脚 PB2 ------> SPI2_MISO PB11 ------> SPI2_MOSI PB12 ------> SPI2_NSS PB13 ------> SPI2_SCK2、生成GPIO的代码如下: /* USER CODE BEGIN SPI2_MspInit 0 */ /* USER CO...

2021-01-19 11:10:35 1827

原创 gcc编译过程

main.c源码:#include<stdio.h>int main(int argc, char **argv){ /* Write your code */ printf("hello world\n"); //print strings return 0;}预处理: gcc main.c -E -o main.i 作用: ...

2020-10-23 14:38:30 217

原创 图像左右镜像处理

在处理图像的过程中,经常会遇到把图像左右镜像处理的现象。/* * 左右镜像函数 * *image 输入和输出图像 * width 图像的宽 * height 图像的高 */static void mirror_image(unsigned char *image, int width, int height){ unsigned char temp, *endp; in...

2020-10-21 18:02:25 1119

原创 STM32 GCC编译环境搭建

1.下载gcc-arm-none-eabi工具链地址:https://launchpad.net/gcc-arm-embedded/+download官方安装说明:https://launchpad.net/~team-gcc-arm-embedded/+archive/ubuntu/ppa(1)、在/usr/local目录下新建 complier 文件夹(存放编译工具链)#cd /user/local#mkdir complier#chmod -R 777 complie.

2020-10-21 16:27:52 600

原创 海思Hi3556V200 SDK开发环境搭建之一:安装samba服务

1.安装VMware和Ubuntu(1).给Ubuntu设置root用户及密码#sudo passwd(2).切换到root用户更新软件库#apt-get install2安装samba服务器(与电脑共享文件)#apt-get remove samba //卸载samba服务器#apt-get install samba //安装samba服务器#vim /etc/s...

2019-12-08 23:39:41 2404

原创 STM8配置GPIO输入输出功能

STM8开发参考: 芯片寄存器文档 原理图 Google1.GPIO工作模式 输入: 浮空输入 上拉输入 输出: 推挽输出 开漏输出(1).浮空输入:浮空输入,可以做KEY识别,RX1(2).带上拉输入:IO内部上拉电阻输入(3).开漏输出:IO输出0接GND,IO输出1,悬空,...

2019-11-18 23:57:42 3657

原创 Libusb交叉编译

使用过USB的同学,应该都知道Libusb这个库。这个库使用起来非常简单,内部提供了强大的接口,下面我来总结一下交叉编译过程。 libusb驱动库包含了 libusb-1.0.9.tar.bz2和 libusb-compat-0.1.4.tar.bz2,下载地址如下:https://download.csdn.net/download/bearobot/110298341...

2019-03-19 23:10:39 3222 3

原创 八、USB标准请求指令

    控制传输是最重要和结构最复杂的一种传输类型。整个USB枚举的过程,都是使用了控制传输。USB枚举过程中的指令,我们称为标准的USB设备请求指令。包括了:标准USB设备请求指令 请求命令名称 bRequest字段值 作用 GET_STATUS 0 用于返回特定接收者的状态信息 , 比如端点、接口等的状态 CLEAR_FEATURE 1 主机清...

2019-01-13 23:21:29 1875

原创 五、USB数据传输类型

1、USB数据传输  US四种传输类型:控制传输、中断传输、批量传输和同步传输。  一次传输可以包含一笔或者多笔事务。2、中断传输  中断传输(Interrupt Transfer), 可用于键盘、鼠标等 HID 设备的数据传输中, 由IN事务或 OUT 事务组成。中断传输IN事务、OUT事务的结构 (1)、中断传输的结构  中断传输中包含了 2 种最基本的事务,...

2018-12-25 00:21:27 2348 1

原创 四、USB通讯的数据结构

    USB协议中最为复杂的是底层数据通信结构的内容,其中包括了最基本的数据传输单元、数据传输类型、数据传输机制及数据交换流程。1、数据通信协议的简介    一套完整的通信协议包括的内容十分庞大和复杂:(1)、首先要提出系统的通信模型 , 用来确定传输什么数据、在何种硬件或软件实体之间进行数据通信、实现什么特殊功能。(2)、其次, 就要提供数据的传输方法, 这里面包括最为底层的数...

2018-12-24 23:27:47 1051

原创 三、USB机械和电气特性

    在了解USB的时候,我们不但需要了解USB的通讯协议,也需要知道一些USB机械和电气特性,至少在看到USB标识符的时候,不会不认识。这样才会显得更加专业。1、USB的机械特性(1)、USB图标      USB图标一般标注在USB的A型和B型插头上 , 位于插头前端一块凹陷区域中 ,以浮雕的形式标注。有此图标的一面则是该插头的顶层。USB图标(2)、USB接插件U...

2018-11-19 23:53:52 2420

原创 二、USB系统资源

1、最简单的USB系统  USB系统是以USB主机为核心,USB设备为功能,组成的系统模型。                                                                         最简单的USB模型2、PC上的USB系统组成  PC usb主机包括:USB主机控制器、USB系统软件、用户软件 (1)、USB主...

2018-11-14 22:56:50 1152

原创 一、USB的概念

1、USB通用串行总线,英文名:universal serial bus2、usb传输速率;USB1.0   1.5Mbps(192KB/s)  低速(Low-Speed)  500mA   1996年1月  USB1.1   12Mbps(1.5MB/s)   全速(Full-Speed)   500mA   1998年9月  USB2.0   480Mbps(60MB/s)...

2018-11-14 20:22:15 4628 12

原创 七、USB描述符分类

  USB描述符有以下几种:设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符、HID描述符1、设备描述符  设备描述符描述了USB设备的通用信息。一个USB设备只有一个设备描述符。比较特殊的是, 默认控制管道的数据包的长度(也就是USB设备端点0的长度)是在设备描述符中定义的, 而不像其他端点一样是在端点描述符中定义的。   描述设备速度,走的是USB1.1、USB2.0;...

2018-11-12 23:38:44 5553

原创 六、标准的USB描述符

  USB 设备第一次连接到主机上时 , 要接收主机的枚举( Enumeration)和配置( Configuration), 目的就是让主机知道该设备具有什么功能、是哪一类的USB设备、需要占用多少USB的资源、使用了哪些传输方式以及传输的数据量多大等等。(1)、描述符  描述符(Descriptor), 是一个完整的数据结构,可以通过C语言等编程实现,并存储在USB设备中, 用于描述一...

2018-11-09 23:04:56 1016

原创 在unsigned char类型的函数中返回负数

    为了让函数返回值的绝对值更大,我们常常会在函数前面加上unsigned修饰,例如char类型的函数,返回值的绝对值最大为127,而unsigned char的返回值最大可以达到255。但是如果我们在unsigned char类型中返回-1,会得到什么结果呢?为什么会得到这个结果,我们一起来看一下! 代码如下:#include &lt;stdio.h&gt;unsigned c...

2018-11-05 21:21:47 2393

libusb驱动库

libusb交叉编译驱动库文件,可用来编译出不同平台的驱动库。

2019-03-17

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

TA关注的人

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