自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(201)
  • 资源 (1)
  • 收藏
  • 关注

原创 按位定义结构体

在工作中,经常遇到按位(bit)定义结构体 的情况。由于一个字节有8个位,这时,程序员往往对bit的位置产生困惑。现在给出一个例子,来说明位的定义次序。#pragma pack(push,1)typedef struct ST_TEST{ unsigned char ucA:1; unsigned char ucB:1; unsigned char...

2019-08-15 11:38:10 6702

转载 嵌入式Linux开发流程

嵌入式linux驱动开发流程嵌入式系统中,操作系统是通过各种驱动程序来驾驭硬件设备的。设备驱动程序是操作系统内核和硬件设备之间的接口,它为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,可以像操作普通文件一样对硬件设备进行操作。设备驱动程序是内核的一部分,完成以下功能:◇ 驱动程序的注册和注销。◇ 设备的打开和释放。◇ 设备的读写操作。◇ 设备的控制操作。◇ 设...

2019-07-15 18:25:13 792

转载 NB-IoT和eMTC到底有什么不同?

Coverage 增强覆盖•Consumption 低功耗•Cost 低成本为了满足“3C”目标,NB-IoT和eMTC的实现方式也有不同之处,具体如下:一、NB-IoT和eMTC的关键技术对比增强覆盖NB-IoT的覆盖目标是MCL 164dB,其覆盖增强主要通过提升上行功率谱密度和重复发送来实现。eMTC的覆盖目标是MCL 155.7dB,其功率谱密度与LTE...

2019-03-26 15:40:07 2388

转载 LTE-TDD随机接入过程(3)-RAR(MSG2)以及MSG1的重传

本文涉及到的内容有:(1)UE在什么时候开始接收RAR(2)怎么确定RA-RNTI(3)UE没有收到RAR后的处理(4)RAR的格式1.UE监测RAR文章《LTE-TDD随机接入过程(2)-前导码Preamble的格式与时频位置》已经详细说明了UE发送Preamble前导码的时频位置。当UE发出Preamble后,并不是立即准备接收RAR(Random Access Res...

2019-03-25 18:11:27 1569

转载 LTE学习笔记--LTE无线连接过程--网络接入过程

1,检测系统信息广播系统信息广播由网络实现操作,周期性放入发送,UE开机后,会接收到由eNode B通过物理广播信道(PBCH)和物理性下行控制信道(PDCCH)发送的基站指示信息。包括本小区的物理随机接入信道(PRACH)配置索引、逻辑根序列初始值、循环移位索引、上下行配置索引等于随机接入有关的参数。UE通过这些指示信息生成要发送给eNode B的随机接入前导序号。2,小区搜索过程...

2019-03-25 17:28:53 2502

转载 串口中怎样接收一个完整数据包的解析

方法1:串口接受数据,定时器来判断超时是否接受数据完成。方法2:DMA接受+IDLE中断实现思路:采用STM32F103的串口1,并配置成空闲中断IDLE模式且使能DMA接收,并同时设置接收缓冲区和初始化DMA。那么初始化完成之后,当外部给单片机发送数据的时候,假设这帧数据长度是200个字节,那么在单片机接收到一个字节的时候并不会产生串口中断,而是DMA在后台把数据默默地搬运到你指定的缓冲区里面。...

2018-04-08 17:02:45 6324

转载 KConfig的配置和编译

Nuttx配置系统是由kconfig ,makefile和配置工具组成。内核的Makefile分为5个组成部分:       Makefile                             最顶层的Makefile.config                                内核的当前配置文档,编译时成为定层Makefile的一部分arch/$

2018-02-07 16:25:10 3966

转载 nuttx 添加应用程序

在apps-7.15文件夹中有许多Nuttx的例程,具体位于apps-7.15/example中,这里以hello 这个例程为例,来看看如何添加程序到Nuttx中。 打开apps-7.15/example/hello会看到如下几个文件:  其中hello_main.c是源文件,其余三个是配置相关文件。打开hello_main.c:  可以看到只有头文件不一样,自己写只需注意头文

2018-02-07 15:09:54 1169

转载 nuttx字符设备

字符设备是非常普遍的一种设备,这种设备在I/O传输过程中只能以字符为单位进行传输,如键盘、鼠标、以及一些传感器设备都是字符设备。Nuttx采用VFS,和linux一样的设计思路,即“一切设备皆文件”,对设备的操作就如同对文件的操作,Nuttx下的设备驱动就是实现这种对文件操作的接口,设备驱动屏蔽了对设备本身的访问的复杂性。通过VFS对设备的抽象,呈现给用户简单的标准接口,如open(),

2018-02-07 15:06:19 571

转载 nuttx启动过程

__start--                                 #处理器执行的第一条指令            |            v       stm32_clockconfig()------              #初始化时钟                               |                          

2018-02-07 14:56:28 545

转载 nuttx移植

1、在ubuntu根目录下:root@ubuntu:/#apt-get update               #更新包2、root@ubuntu:/#apt-get install gcc-arm-none-eabi               #编译器3、kconfig-frontends下载:http://ymorin.is-a-geek.org/download/kc

2018-02-07 14:45:32 558

转载 飞控操作系统

主处理器运行NuttX实时操作系统,所有功能都通过任务进程实现[4]。主要的进程有传感器数据采集、姿态估算、姿态控制、飞行器状态识别与切换、协处理器控制、日志记录。进程间进行通信是程序结构的重要部分。  也就是说在飞机中就有几个主要进程控制飞机。每个进程负责些什么呢。如图3所示,传感器数据采集进程: 采集的所有传感器数据。姿态估计进程: 利用传感器数据估算出飞行

2018-02-07 13:56:50 1946

转载 NUTTx移植到飞控板

1、下载官方NUTTX系统源码:git clone https://bitbucket.org/nuttx/nuttxgit clone https://bitbucket.org/nuttx/appsgit clone  https://bitbucket.org/nuttx/tools 2、根据系统硬件找到类似配置文件:我们飞控板采用STM32F

2018-02-07 13:53:37 2870

转载 MAVLink简介

MAVLink简介Mavlink协议最早由 苏黎世联邦理工学院 计算机视觉与几何实验组 的 Lorenz Meier于2009年发布,并遵循LGPL开源协议。Mavlink协议是在串口通讯基础上的一种更高层的开源通讯协议,主要应用在微型飞行器(micro aerial vehicle)的通讯上。Mavlink是为小型飞行器和地面站(或者其他飞行器)通讯时常常用到的那些数据制定一种发送和接收

2018-02-06 15:48:42 1030 1

转载 nuttx移植

1、在ubuntu根目录下:root@ubuntu:/#apt-get update               #更新包2、root@ubuntu:/#apt-get install gcc-arm-none-eabi               #编译器3、kconfig-frontends下载:http://ymorin.is-a-geek.org/download/kc

2018-02-06 13:58:05 511

转载 MAVLink简介

MAVLink简介Mavlink协议最早由 苏黎世联邦理工学院 计算机视觉与几何实验组 的 Lorenz Meier于2009年发布,并遵循LGPL开源协议。Mavlink协议是在串口通讯基础上的一种更高层的开源通讯协议,主要应用在微型飞行器(micro aerial vehicle)的通讯上。Mavlink是为小型飞行器和地面站(或者其他飞行器)通讯时常常用到的那些数据制定一种发送和接收

2018-02-06 11:00:45 2103 1

转载 nuttx移植

1、在ubuntu根目录下:root@ubuntu:/#apt-get update               #更新包2、root@ubuntu:/#apt-get install gcc-arm-none-eabi               #编译器3、kconfig-frontends下载:http://ymorin.is-a-geek.org/download/kc

2018-02-05 17:01:55 540

转载 随笔 - 58 文章 - 61 评论 - 7 STM32 端口复用&重映射(USART Remap) 下面跟大家说一下STM32单片机的端口重映射,因为是以

随笔 - 58  文章 - 61 评论 - 7 STM32 端口复用&重映射(USART Remap)下面跟大家说一下STM32单片机的端口重映射,因为是以自己为实例.这里是以USART1的重映射为例..        因为我要一个TFT_LCD屏的主控板,考虑到FSMC 我选用了STM32F103VCT6 型号的CPU,一不小心

2017-11-09 18:21:05 268

转载 ADS1248

STM32硬件SPI驱动ADS1248,读出了AD值,怎么使用自己稍微看下文档就知道了。因为我没有买到精密的Rcomp,目前测的电压直接就是PT100的电压,PGA增益只能设置小些。读数还算稳定,温度小数点后第二位有时会跳动,我暂时是能用就行,没时间多折腾。头文件里的宏定义#define USE_INTER_VREF决定是用   ADS1248内部2.048V  还是  恒流源

2017-11-04 21:59:58 4987 1

转载 SPI 的DMA接收

一、概述在项目开发中,需要用到SPI接口来进行大量数据的传输,为了能节省CPU的工作时间,采用DMA来进行数据发送则是明智之举。二、工作模式描述1、发送方作为主机发送数据,接收方作为从机接收数据,基本的硬件连接为:主机——从机NSS ——NSSSCK——SCKMOSI——MOSIGND——GND(注意一定要共地,否则数据会错很多)

2017-11-04 19:55:13 10080 1

转载 ADS1246

ADS1246是TI公司大致在2009年中期推出的24位ADC,最高采样速率可达2Ksps,其为单通道器件,与之相对应的还有ADS1247和ADS1248三通道器件,但特性并非完全一致。据TI资料介绍,ADS1246在ADS1247/ADS1248功能上做出简化,保留了其部分特性。本次设计,需要用到24位单通道转换器件,于是考虑用到ADS1246,主控制器用STM32L系列。以下为ADS1246的

2017-11-03 18:29:17 1457

转载 EEPROM

之前对各种存储器一直不太清楚,今天总结一下。 存储器分为两大类:ram和rom。 ram就不讲了,今天主要讨论rom。 rom最初不能编程,出厂什么内容就永远什么内容,不灵活。后来出现了prom,可以自己写入一次,要是写错了,只能换一片,自认倒霉。人类文明不断进步,终于出现了可多次擦除写入的EPROM,每次擦除要把芯片拿到紫外线上照一下,想一下你往单

2017-07-05 11:12:26 2808

转载 C# ctring 转换成数组

string 转换成 Char[]  string ss = "abcdefg";  char[] cc = ss.ToCharArray();Char[] 转换成string  string s = new string(cc);byte[] 与 string 之间的转换  byte[] bb = Encoding.UTF8.GetBytes(ss);  st

2017-07-04 11:56:38 658

转载 群辉

打开路由器访问界面选择转发规则->端口映射-新建在弹出的界面中填写相应的端口号了内网ip填写svn所在地址的IP,比如:192.168.30.2添加映射端口,比如svn的默认端口是3306,如果修改过那么就填写你修改过后的端口类型选择TCP选择有效,应用这样就可以在家里或者外网使用svn了:svn://124.124.124.12

2017-06-02 19:20:16 831

转载 群辉服务器

Synology DS213J 群晖NAS git server架设方法!最近单位购入一台Synology  DS213J用作数据存储。本人打算将一些项目的源代码也放在上面,他本身的套件中心提供了SVN SERVER和GIT SERVER。设置SVN SERVER非常简单,基本上安装成功,设定账号,即可使用。但是GIT SERVER的架设遇到了麻烦,按照他的帮助说明

2017-06-02 16:37:47 1535 1

转载 STM32407 网络通信模块

早在还没有毕业前,就调试过STM32F407+DP83848,这次又调试了一次,居然花了2天时间。STM32支持两种工业级标准的接口,来与外部物理层 PHY模块相连,分别是独立于介质的接口(MII)和简化的独立于接口的接口(RMII)。之前PHY芯片使用的MII模式,现在的这次调试是使用的RMII模式(参考了各方原理图,主要还是以官方开发板的MB786为主)。我还是以一个ST官方手册上的图来说说我

2017-05-31 09:59:56 10559

转载 FTP服务器搭建

一。开通服务1.右击开始图标:点击“控制面板”2.点击”程序“:3,点击“启用或关闭window功能”:4,勾选下图标记的选项。第二。打开IIS管理器,建立站点。1, 搜索”IIS“,打开它。2,展开,右击网站,添加ftp3,输入站点名,和共享文件

2017-05-16 09:57:18 253

转载 串口

有几个概念玩嵌入式的娃娃们经常搞混。也不怨谁,现在的卖家都在故意混淆串口的概念。Point (所有要点都在这,请仔细阅读):1、串口、COM口是指的物理接口形式(硬件)。而TTL、RS-232、RS-485指的是串口的电平标准(电信号)。2、接线的时候,一般只接GND、RX(接收)、TX(发送)。不会接入Vcc等电源线,避免与目标设备上的供电冲突。      (接线法则 应

2017-02-15 13:13:52 1117

转载 RS转TTL芯片

2017-02-15 13:07:10 330

转载 DB9 公头母头引脚定义及连接

DB9 公头母头引脚定义及连接标签: 元器件2013-05-31 06:37 78156人阅读 评论(6) 收藏 举报 分类:元器件(10) 版权声明:本文为博主原创文章,未经博主允许不得转载。1.实物及引脚简介在做开发的时候经常会用到串行接口,一般9针的串行接口居多。如下图所示:公头母头用于连接线的采用上图封装。

2017-02-09 00:21:33 44437 1

转载 STM32 SPI DMA 的使用

STM32 SPI DMA 的使用  一是想总结一下SPI总线的特点与注意点,二是总结一下SPI DMA的使用一、SPI信号线说明  通常SPI通过4个引脚与外部器件相连:MISO:主设备输入/从设备输出引脚。该引脚在从模式下发送数据,在主模式下接收数据。MOSI:主设备输出/从设备输入引脚。该引脚在主模式下发送数据,在从模式下接收数据。SCK:串口时钟,作为主

2017-01-24 17:21:52 5253

转载 STM32开源板全屏图片提速例程/RA8875/SPIFLASH/DMA

过节之前这个没调出来今天继续搞,下午才搞出来,中午去吃饭的时候带到了线,板子从桌上摔到瓷砖上,液晶朝下液晶不能用了,扔了,换了一块,也许这是能调出来的先兆哈 确实搞定了,速度比不用DMA方式快很多步骤:1.将图片处理后保存在TF卡上(macro sd)2.将TF卡上的图片通过编程,复制到SPI FLASH3.设置RA8875一堆寄存器,透过D

2017-01-24 14:45:31 5844 4

转载 Linux SPI总线和设备驱动架构之四:SPI数据传输的队列化

我们知道,SPI数据传输可以有两种方式:同步方式和异步方式。所谓同步方式是指数据传输的发起者必须等待本次传输的结束,期间不能做其它事情,用代码来解释就是,调用传输的函数后,直到数据传输完成,函数才会返回。而异步方式则正好相反,数据传输的发起者无需等待传输的结束,数据传输期间还可以做其它事情,用代码来解释就是,调用传输的函数后,函数会立刻返回而不用等待数据传输完成,我们只需设置一个回调函数,传输完成

2017-01-24 14:13:02 256

转载 Linux SPI总线和设备驱动架构之三:SPI控制器驱动

通过第一篇文章,我们已经知道,整个SPI驱动架构可以分为协议驱动、通用接口层和控制器驱动三大部分。其中,控制器驱动负责最底层的数据收发工作,为了完成数据的收发工作,控制器驱动需要完成以下这些功能:1.    申请必要的硬件资源,例如中断,DMA通道,DMA内存缓冲区等等;2.    配置SPI控制器的工作模式和参数,使之可以和相应的设备进行正确的数据交换工作;3.    向通用接口层提

2017-01-24 14:10:59 190

转载 Linux SPI总线和设备驱动架构之二:SPI通用接口层

通过上一篇文章的介绍,我们知道,SPI通用接口层用于把具体SPI设备的协议驱动和SPI控制器驱动联接在一起,通用接口层除了为协议驱动和控制器驱动提供一系列的标准接口API,同时还为这些接口API定义了相应的数据结构,这些数据结构一部分是SPI设备、SPI协议驱动和SPI控制器的数据抽象,一部分是为了协助数据传输而定义的数据结构。另外,通用接口层还负责SPI系统与Linux设备模型相关的初始化工作。

2017-01-24 14:05:50 416

转载 Linux SPI总线和设备驱动架构之一:系统概述

SPI是"Serial Peripheral Interface" 的缩写,是一种四线制的同步串行通信接口,用来连接微控制器、传感器、存储设备,SPI设备分为主设备和从设备两种,用于通信和控制的四根线分别是:CS    片选信号SCK  时钟信号MISO  主设备的数据输入、从设备的数据输出脚MOSI  主设备的数据输出、从设备的数据输入脚因为在大多数情况下,CPU或SOC一侧

2017-01-24 14:04:01 362

转载 spidev介绍

一、spidev简单介绍        如果在内核中配置spidev,会在“/dev”目录下产生设备节点,通过此节点可以操作挂载在该SPI总线上的设备,接下来将从驱动层和应用层来分析程序。二、spidev驱动层2.1、驱动注册        分析一个设备驱动,一般都是从module_init和module_exit处开始,本文也不例外,程序如下:点击

2017-01-24 13:57:48 7857

转载 驱动之module_init/module_exit

在前面helloworld的编写里面,我们使用了两个宏分别是module_init和module_exit,这里分析下为什么使用这两个宏。在写模块的时候有两个特殊的函数,分别是init_module和cleanup_module,这两个函数分别在insmod的时候和rmmod的时候调用,并且insmod和rmmod只识别这两个特殊的函数,可是我们前面的例子里面并没有这两个函数。怎么会这样呢

2017-01-24 11:45:17 435

转载 STM32连续进中断问题+

STM32 有时候会不断进入中断,解决方法如下1.串口初始化配置时,需要打开ORE 溢出中断,如下红色代码所示[cpp] view plain copyvoid Usart_Init(void)  {          GPIO_InitTypeDef GPIO_InitStructure;      NVIC_I

2017-01-23 02:30:42 3404

转载 串口利用联合体收发浮点数

利用联合体通过串口收发浮点数以下介绍两种方法,一种是利用指针,一种是利用联合体,时间宝贵的看客可以直接跳到第二种方法这里只是讨论数据发送前和接收后的处理,不讨论具体发送过程方法一:指针 UART串口有一个缺点,就是发送和接受是一个字节一个字节的接收,如果发送的浮点数那可怎么办啊? 有人会说,那就一个字节一个字节发送啊那么,我先定义一个double d

2017-01-20 17:10:04 2209

linux 嵌入式开发讲义

嵌入式开发1111111111111111111111111111111111111

2009-10-11

空空如也

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

TA关注的人

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