当前位置: 首页 > news >正文

手机靓号网站建设关键词seo排名优化

手机靓号网站建设,关键词seo排名优化,网站目标定位概念,专做定制旅游网站有哪些修改用户密码 配置网络 nmcli dev wifi 命令扫描周围WIFI热点 nmcli dev wifi connect xxx password xxx 命令连接WiFi 查看ip地址的指令: ifconfig ip addr show wlan0 SSH登录 这是企业开发调试必用方式,比串口来说不用接线,前提是接入网络…

修改用户密码

配置网络

nmcli dev wifi 命令扫描周围WIFI热点

 

nmcli dev wifi connect  xxx password xxx 命令连接WiFi

查看ip地址的指令:

ifconfig

ip addr show wlan0

SSH登录

        这是企业开发调试必用方式,比串口来说不用接线,前提是接入网络并获得板子IP 地址,且系统做了SSH的服务器,本镜像自带 SSH 服务器,所以通过 mobaXterm 登陆就行

基于官方外设开发

1.wiringPi库SDK安装

git clone https : //github.com/orangepi-xunlong/wiringOP // 下载源码
cd wiringOP // 进入文件夹
sudo . / build clean // 清除编译信息
sudo . / build // 编译
通过 windows 浏览器打开 https : //github.com/orangepi-xunlong/wiringOP
下载压缩包
把压缩包通过 xterm 传到开发板
解压 unzip xxx . zip
cd xxx
sudo . / build
gpio readall
通过指令:gpio readall验证

设置tab缩进

⑥、设置tab缩进

sudo vim /etc/vim/vimrc

set tabstop=4 设置tab键缩进4个空格

set shiftwidth=4 设置批量对齐时候的tab键空格数为4

 

通过配置GPIO口,让蜂鸣器响 

#include<wiringPi.h>
#include <stdio.h>
#include <sys/time.h>#define BEEP 0int main()
{wiringPiSetup();//wiringPi库初始化pinMode(BEEP,OUTPUT);//配置GPIO口为输出端口while(1){digitalWrite(BEEP,LOW);//蜂鸣器输出低电平响sleep(1);digitalWrite(BEEP,HIGH);//蜂鸣器输出高电平不响sleep(1);}return 0;
}

 因为编译关于配置gpio口的程序需要连接很多,比如:

-lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt
所以我们可以编写一个简易的shell脚本
gcc $1 -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt 
$1是待编译的文件名

超声波测距

超声波测距的原理就是当Trig发出波后开始计时,Echo会从低电平变为高电平,当接收到返回的波时,Echo会从高电平重新变回低电平,这时停止计时,计算发送和接收到波的时间,用速度x时间=距离来计算,速度= 340m/s(最后的距离单位是cm/s注意换算单位!!!)

(86条消息) [STM32F103C8T6] 超声波测距_TX564的博客-CSDN博客

 在全志h616中怎么获取时间呢?

我们会用到时间函数

#include<sys/time.h>
int gettimeofday(struct timeval *tv,struct timezone *tz )
gettimeofday() 会把目前的时间用 tv 结构体返回,当地时区的信息则放到 tz 所指的结构中
struct timeval
{
long tv_sec ; /* */
long tv_usec ; /* 微妙 */
};
#include <stdio.h>
#include <sys/time.h>
#include <wiringPi.h>#define Trig 0
#define Echo 1double getdistance()
{double dis;struct timeval start;struct timeval stop;pinMode(Trig,OUTPUT);pinMode(Echo,INPUT);digitalWrite(Trig,LOW);usleep(5);digitalWrite(Trig,HIGH);usleep(20);digitalWrite(Trig,LOW);while(!digitalRead(Echo));gettimeofday(&start,NULL);while(digitalRead(Echo));gettimeofday(&stop,NULL);long difftime = 1000000*(stop.tv_sec - start.tv_sec)+(stop.tv_usec - start.tv_usec);//乘以1000000是为了将s换算成us便于与后面相加dis = (double)difftime/1000000 * 34000/2;dis的单位是cm/usreturn dis;
}int main()
{if(wiringPiSetup() == -1){perror("error\n");} while(1){dis = getdistance();printf("dis = %ld\n",dis);sleep(1);}
}

全志h616在linux下的定时器

#include <sys/time.h>

setitimer() value 指向的结构体设为计时器的当前值,如果 ovalue 不是 NULL ,将返回计时器原有值。
int setitimer (__itimer_which_t __which,
const struct itimerval  *__restrict __new,
struct itimerval  *__restrict __old)
一般第三个参数设为NULL
which: 三种类型
ITIMER_REAL // 数值为0(底层吧ITIMER_REAL 宏定义为0),计时器的值实时递减,发送的信号是 SIGALRM 。---->用的最多
ITIMER_VIRTUAL // 数值为 1 ,进程执行时递减计时器的值,发送的信号是 SIGVTALRM
ITIMER_PROF // 数值为 2 ,进程和系统执行时都递减计时器的值,发送的信号是 SIGPROF

struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};

it_interval:定时器初始值
it_value:当定时器被设置OK,延时多久时间去执行定时器计时 //这个值不能设置为0!!

struct timeval {
__time_t tv_sec; /* Seconds. */
__suseconds_t tv_usec; /* Microseconds. */
};

__restrict __old:
可以不设置,用NULL

返回值: 成功执行时,返回0。失败返回-1

很明显,这边需要捕获对应的信号进行逻辑相关处理 signal(SIGALRM,signal_handler);

一个进程只能创建一个定时器!!!

每隔1s打印一次gogogo 

#include <stdio.h>
#include <sys/time.h>/*
struct itimerval {
struct timeval it_interval;//初值
struct timeval it_value;//启动定时器时间
};*/static i = 0;
void signal_handler()
{i++;if(i == 2000){printf("gogoog\n");//每一秒打印一次}}int main()
{struct itimerval ivt;//设定初值ivt.it_interval.sec = 0;ivt.it_interval.usec = 500;//初值为500us//设定什么时候开启定时器ivt.it_value.sec = 1;//1s后开始启动定时器ivt.it_value.usec = 0;//设定定时方式setitimer(ITIMER_REAL,&ivt,NULL);//信号处理signal(SIGALRM,signal_handler);while(1);
}

 sg90舵机操作

sg90舵机的角度控制主要是pwm控制,pwm说白了就是占空比(高电平所占周期与总周期的比例)

#include <stdio.h>
#include <sys/time.h>#define sg90 5
int jd;
static int i;void signal_handler()
{if(i<=jd){digitalWrite(sg90,HIGH);}else{digitalWrite(sg90,LOW);}if(i == 40)//总周期为20ms分成若干份作为pwm波{i = 0;}i++;
}int main()
{struct itimerval ivt;//初始化wiringPiSetup();pinMode(sg90,OUTPUT);//设置定时器初值   ivt.it_interval.tv_sec = 0;ivt.it_interval.tv_usec = 500;      //设置几秒后启动定时器ivt.it_value.tv_sec = 1;ivt.it_value.tv_usec = 0; //设置定时器模式if(setitimer(ITIMER_REAL,&ivt,NULL) == -1){perror("error");}//信号处理signal(SIGALRM,signal_handler);while(1){printf("choose jd:1-0,2-45,3-90,4-135,5-180");scanf("%d",&jd);}
}

基于iic的oled显示

 

开始测试 i2c , 首先安装 i2c-tools
使用命令:
sudo apt-get install i2c-tools

根据官方给的oled_demo来编写 

#include <errno.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdint.h>#include "oled.h"
#include "font.h"int oled_show(struct display_info *disp) {int i;char buf[100];disp->font = font1;//选择字体oled_putstrto(disp, 0, 10, "Welcome to my home");disp->font = font1;//选择字体oled_putstrto(disp, 0, 20, "handsome");oled_send_buffer(disp);return 0;
}void show_usage(char *progname) {printf("\nUsage:\n%s <I2C bus device node >\n", progname);
}int main(int argc, char **argv) {int e;char filename[32];struct display_info disp;if (argc < 2) {show_usage(argv[0]);return -1;}memset(&disp, 0, sizeof(disp));sprintf(filename, "%s", argv[1]);disp.address = OLED_I2C_ADDR;e = oled_open(&disp, filename);e = oled_init(&disp);oled_show(&disp);return 0;
}

http://www.hkea.cn/news/295923/

相关文章:

  • 在日本做色情网站广州seo外包
  • 最棒的网站建设考研最靠谱的培训机构
  • 广州建设企业网站黑河seo
  • 招商网站建设性价比高seo排名优化的
  • 产品网站怎么做的长沙正规关键词优化价格从优
  • 怎样查询江西省城乡建设厅网站杭州seo网
  • 网站建设空间是指什么软件网站优化最为重要的内容是
  • 做美工要开通什么网站的会员呢新网站友链
  • 网站集约化建设推进情况推广app赚钱
  • 番禺大石做网站域名污染查询网站
  • 长沙市在建工程项目免费seo快速排名工具
  • 南宁定制网站制作电话图片外链生成工具
  • 哪些网站做的海报比较高大上百度客服电话是多少
  • 菏泽网站建设电话常州seo外包
  • 做木皮的网站裂变营销五种模式十六种方法
  • 精美 企业网站模板微信软文推广怎么做
  • 怎么建立一个网站里面可以查询资料百度权重域名
  • 网站建设顺序镇江交叉口优化
  • 低价企业网站搭建软文新闻发布网站
  • 创造与魔法官方网站做自己喜欢的事seo视频
  • 淘宝联盟推广网站怎么做吉安seo招聘
  • 工程招聘网站如何免费制作自己的网站
  • 网站建设调研问卷搜易网托管模式的特点
  • 在哪个网站可以做java面试题宁德市蕉城区疫情
  • 2021年重大新闻事件seo快速工具
  • 拼多多网店南宁优化推广服务
  • 洛阳建筑公司排名长沙官网seo服务
  • 网站关键词优化公司哪家好企业网站seo点击软件
  • 做网站有必要?优化师培训
  • 网站怎么发布信息百度推广优化技巧