工作
文章平均质量分 92
fluency1224
.......
展开
-
利用GPIO自定协议完成数据传输
数模转换器DAC081S101是一款8位数字到模拟的微小功耗的转换器,通过对DAC模块中8位数据寄存器的控制来实现对DA模块功率的控制。DAC模块的电路示意图如下图:DAC芯片中数据传输具有自己的传输协议。由一个时钟信号线,一个使能线SYNC,一个数据线来完成数据的正确传输。时钟周期信号的最大周期可达到30MHZ,在SYNC使能时,以每个周期的下原创 2017-09-26 20:11:21 · 2675 阅读 · 1 评论 -
AT91sam9260的Telnet远程登录开发板
一、Telnet远程登录协议服务的标准协议,TCP/IP协议中的一员。通过Telnet服务器,可以完成登录开发板的工作。在busybox编译的时候,相关的Telnet指令都有了。本以为直接开启Telnet服务就可以了。 于是直接开启telnetd然后去连接开发板发现错误:我发现我并不知道所谓的登录密码二、用户和用户组在使用telnetd之前我们必须给原创 2017-11-24 17:18:26 · 311 阅读 · 0 评论 -
AT91sam9260上移植ssh服务
一、移植SSH的原因日常调试开发板的Linux系统都是通过ARM的debug串口UART来调试的,当我们的产品封装之后,一般很少留出debug串口为嵌入式工程师提供调试接口。但是网口作为产品与网络交互的唯一接口,对于我们来说是可用的。在ARM调试时候,我们通过的是Linux的shell,通过的是串口与shell进行交互。现在,我遇到一个问题,如何通过网口与ARM的shell进行交互呢?下面我又原创 2017-11-27 12:02:49 · 412 阅读 · 0 评论 -
AT91Sam9260的网卡驱动
内核源码中对网卡以及其他外设设备的驱动程序,设备的注册都在 Board_sam9260ek_.c文件中。结构体原型: /* Ethernet (EMAC & MACB) */struct at91_eth_data {u32 phy_mask;u8 phy_irq_pin;/* PHY IRQ */u8 is_rmii;/* using RMII i原创 2017-10-10 16:51:14 · 1584 阅读 · 0 评论 -
net-snmp的安装配置和移植应用(2)
一、前篇在(1)中写到主机Ubuntu的snmp服务搭建,下面介绍开发板at91sam9260上的snmp服务的移植二、移植准备(1)交叉编译工具:(2)snmp源码在官网上下载 snmp源码 我下载的是 net-snmp-5.4.4.tar.gz 版本tar -zxvf net-snmp-5.4.4.tar.gz解压三、编译 (1)配置原创 2018-02-06 14:36:13 · 664 阅读 · 0 评论 -
STM32的内部Flash读写
内部Flash官方手册介绍 STM官方关于stm32F103系列的芯片有一个专门介绍flash读写的手册。STM32F100xx超值型产品闪存编程手册 通过J-Link查看自己的芯片内部的flash大小。我的大小为512k 是high-density 手册中对应的内存表为: 相关库函数在stm32f10x_flash.c文件中官方为我们定义好的很多关于内部fla...原创 2018-05-17 20:35:23 · 7604 阅读 · 1 评论 -
STM32的DAC输出驱动电压
目的 项目中的模块对输出电压的改变来控制功率、所以考虑用stm32内部的DAC来输出电压作为驱动。 源代码#include "dac.h"void Dac1_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; DAC_InitTypeDef DAC_InitType; RCC_APB2PeriphClockCmd(RCC_AP...原创 2018-05-17 20:42:05 · 11936 阅读 · 3 评论 -
STM32的掉电监控PVD
设备在掉电钱及时向flash写入时间,来记录掉电的时间。当下一次上电时读出这个时间。就能知道系统是在什么时候故障掉电的了。#include "head.h"#include "PVD.h"void PVD_Init(void){ EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructure; N...原创 2018-05-17 20:44:50 · 6134 阅读 · 1 评论 -
AM3352上移植sqlite3数据库
sqlite简介 SQLite是一个进程库,实现了一个 自包含的, 无服务器, 零配置, 事务性 的SQL数据库引擎。SQLite是一个嵌入式SQL数据库引擎。与大多数其他SQL数据库不同,SQLite没有单独的服务器进程。SQLite直接读取和写入普通磁盘文件。包含多个表,索引,触发器和视图的完整SQL数据库包含在单个磁盘文件中。数据库文件格式是跨平台的 - 您可以在32位和64位系统之间...原创 2018-05-18 16:35:12 · 651 阅读 · 0 评论 -
AM3352的I2C驱动与传感器sht20的应用
SHT20传感器 这是一款完全校准的温湿度传感器集成电路芯片,用数字输出 I2C接口。具有良好的长期稳定性和低功耗特性。用于读设备进行温度监控。SHT20的I2C接口 7bit的设备地址:‘1000’000',1bit读写选择(read:'1' write:'0') command:‘1110’0011’ for temperature, ‘1110’0101’ for rela...原创 2018-05-16 20:27:27 · 1668 阅读 · 0 评论 -
net-snmp的安装配置和移植应用(1)
一、SNMP简单网络管理协议,作为一种短期的网络管理解决方案,用于管理网络设备。所有支持SNMP协议的设备都提供一个SNMP统一的界面所以作为网络设备,支持SNMP协议是必要的。二、SNMP模型一套完整的的SNMP系统包含三个部分管理信息库(MIB)SNMP设备(Agent)网管系统(NMS)三、SNMP的实现根据SNMP的模型,我用主机Ub原创 2017-11-29 19:31:11 · 1674 阅读 · 0 评论 -
Shell脚本写一个应用监控程序
在嵌入式Linux系统中交叉编译一个socket服务器、socket服务存在意外进程结束的现象,下面通过shell脚本完成对socket服务程序的监控。一、PS命令查看Linux程序进程二、shell脚本利用PS命令查看server进程的状态,如死亡、就重新启动。做一个死循环轮训。#################################################原创 2017-11-20 16:12:11 · 8007 阅读 · 1 评论 -
AT91sam9260更改MAC地址的方法
一、u-boot层设置好环境变量。u-boot启动后、我们通常要设置boot的env。包括ipaddr、serverip、ethaddr、bootargs、bootcmd等等。但是mac地址第一次设置之后,就不能再通过命令设置了。打印信息表示这个Mac地址不可覆盖。当然我们可以通过nandflsah工具格式化、重新下载boot。然后就可以定义Mac地址了,当然因为一切都原创 2017-11-15 14:22:16 · 1022 阅读 · 0 评论 -
AT91Sam9260的SPI
一,SPI的定义SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,具有简单易用的特性,如今越来越多的芯片集成了这种通信协议。二、SPI的通信原理通信原理很简单,它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传原创 2017-10-27 11:15:02 · 871 阅读 · 0 评论 -
AT91SAM9260开发环境的搭建
基于虚拟机和Ubuntu系统的嵌入式开发环境的搭建,主要基于百度的一些经验贴,方便快速安装好嵌入式开发所需要的服务。由于AR91Sam上移植的是2.6版本的内核,交叉编译工具版本不宜过高,所以这里Ubuntu系统也选择的是10.04版本Ubuntu1004版本的源更新:http://blog.csdn.net/suquan629/article/details/52333769原创 2017-10-10 16:23:09 · 1837 阅读 · 0 评论 -
UDP广播包的发送问题
在拥有多个设备时,如何得知设备是否存在呢?嵌入式设备发送广播包就是一个可行的方案。UDP广播包,打包buf中信息为设备的信息。然后通过UDP广播到网络中。话不多说,直接给出广播包的源代码{CSDN:CODE:2601417}进行arm-linux-gcc交叉编译后,放进开发板运行、发现无法运行?报了一个网络不存在的错误、用route命令、ifconfig命令看一原创 2017-11-07 15:28:14 · 7544 阅读 · 2 评论 -
AT91sam9260的外部硬件时钟
一、时钟RTC外部硬件时钟是用于嵌入式设备配置系统时间用的外设,大家都知道我们的电脑或者手机即使没有电了,很长一段时间过后重启它的时间还是准的。在嵌入式设备中内置硬件时钟,这种时钟功耗非常小,用一个很小的充电电容电磁就可以了。再设备上电时,外部时钟的电池进行充电,然后再断电之后,电池对时钟进行供电,完成时间的记录校准更能。在系统重启时,就会先读取硬件时钟的时间,对系统时间进行匹配。原创 2017-11-07 16:47:31 · 739 阅读 · 0 评论 -
AT91Sam9260的UART串口
一、通信基础1、串行通信的基本概念在通信领域内,有两种数据通信的方式:并行通信和串行通信,串行通信:计算机与I/O设备之间的数据传输的各位是按顺序依次进行传送,通常数据在一根数据线或者一对差分线上传输。并行通信:计算机与I/O设备之间通过多条传输线交换数据,数据的各位同时传送。2、串行通信的特点串行通信速度慢,但是传输设备成本低,可以用现有的通讯手段和通信设备进行远程通信。原创 2017-10-31 17:00:51 · 1369 阅读 · 0 评论 -
stm32的UART串口通信
问题: 手上有一款AT91SAM9260的开发板。开发板上跑的是2.6版本内核的Linux系统,现在想通过UART来完成stm M0与开发板的通信。一、关于AT91开发板上的UART相关知识都在我的上篇博客中说明:http://blog.csdn.net/qq_37474534/article/details/78405446AT91部分的UART通信已经完成就绪:二、stm M0的原创 2017-10-31 20:19:53 · 1940 阅读 · 0 评论 -
stm32内部温度芯片的驱动及应用实现
stm32F0304是M0系列控制器、使用它来控制微波模块。它的内部内置有温度传感器芯片,用来检测芯片的温度。闲话少说,我们来看芯片手册对这个模块怎么描述:温度传感器是通过ADC_IN16信道来传输值,传感器在温度变化时会产生一个线性的电压变化,然后把这个电压变化转变称数值输出、传感器提供良好的线性度。所以要对芯片进行校准,以发挥骑良好的性能。在应用介绍中给出了他的温度计算原创 2017-10-14 20:00:29 · 3648 阅读 · 0 评论 -
AT91sam9260的u-boot移植
一、准备条件u-boot源码:VMware虚拟机和Ubuntu系统提供交叉编译的环境,Ubuntu版本10.04交叉编译工具链:arm-linux-gcc4.0.0二、移植步骤把源码拷贝进Ubuntu系统的文件夹中,用tar命令解压观察u-boot的目录结构:常用的board(板级目录)include(头文件 也是配置文件)drivers(驱动文件)等等(1)上原创 2017-11-02 19:59:43 · 997 阅读 · 0 评论 -
sync、fsync、fdatasync
问题描述 某天、测试程序的小哥告诉我程序为什么点击保存配置之后,断电重启设备,保存的配置没有了。 得到反馈我的第一想法就是是不是上位机程序的配置指令没有发送过去,然后自己测试发现指令发了过去、并且用vi命令打开发现保存的参数也正确。然后断电重启。再去看文件中的配置参数没有了。 于是多尝试了几次发现有的时候,配置文件能够保存,有的时候却变成了空文件。推测 考虑到文件系统是Fl...原创 2018-06-04 19:47:03 · 439 阅读 · 0 评论