- 博客(35)
- 资源 (4)
- 收藏
- 关注
原创 openwrt 使用uci命令设置WiFi参数
uci set wireless.ra0=wifi-deviceuci set wireless.ra0.type='ralink'uci set wireless.ra0.mode='9'uci set wireless.ra0.channel='auto'uci set wireless.ra0.txpower='100'uci set wireless.ra0.ht='20'uc...
2020-04-10 18:25:51 4402
原创 go语言实现一个从文件读sn的功能
实现一个简单的读取从文本文件读取设备sn的功能。每读取一次就会从文件中删除已经读走的那个sn。package mainimport ( "os" "fmt" "sync" "time" "io" "bufio" "os/exec")var mut sync.Mutexfunc read_sn()([]byte,error) { mut.Lock() //读取...
2020-03-16 18:31:56 375
原创 修改openwrt默认ip
修改 OpenWrt/wrtnode/package/base-files/files/bin/config_generate 把192.168.8.1改为自己想要的ip
2020-03-16 18:17:39 2085
原创 openwrt控制GPIO
1、导出GPIOecho 0 > /sys/class/gpio/export //允许操作GPIO02、GPIO作为输出echo out > /sys/class/gpio/gpio0/direction //设置GPIO控制方向为outputecho 0 > /sys/class/gpio/gpio0/value //控制GPIO0 输出低电平ech...
2020-03-16 18:10:06 807
原创 linux编程获得某个程序进程线程的个数
在编程的时候有时需要知道特定程序有没有在运行,它有几个进程或线程在运行,此刻就可以用下面的代码实现。主要的原理就是执行ps -a命令然用 grep 查找这个程序名,使用wc -l统计它的个数。grep -v grep和grep -v PPID的意思是略过grep自己。 int count_task(const char *task){ FILE* fp; char buf[128]...
2018-09-27 20:13:11 1197
原创 约瑟夫问题
joseph问题: 设编号分别为:1,2,...,n的n个人围坐一圈。约定序号为k(1<=k<=n)的人从1开始计数,数到m的那个人出列,他的下一位又从1开始计数,数到m的那个人出列,依次类推,直到所有人出列为止。#include <stdio.h>#include <stdlib.h>#include <string.h>typedef in...
2018-07-03 10:08:26 210
原创 GCC的使用
[1]gcc 编译路程1. 预处理阶段gcc -E -o [目标文件] [编译文件]*.c--->*.i-E可以使编译器在预处理结束时就停止编译2. 编译阶段gcc -S -o [目标文件] [编译文件]*.i---->*.s-S能使编译器在进行完编译后就停止3. 汇编阶段gcc -c -o [目标文件] [编译文件]*.s---->*.o-c可使汇编代码转化为二进制目标代码后...
2018-06-21 10:45:04 204
原创 linux线程
线程:轻量级的进程,是调度的最小单位,线程是共享同一进程地址空间多个可独立被调度运行的任务一 多线程 与 多进程的区别 1.在一个进程中创建的多个线程,共享同一个进程的资源,各线程独立被内核调度 2.多个进程是独立地址空间相同点:1.都参与统一的调度 2.都有自己的ID,一组寄存器的值 不同点:线程间共享统一个进程的地址空间 ,进程间是独立地址空间 二 线程间共享资源和私有资源 共享资源:全局变...
2018-06-20 09:25:16 164
原创 求最大公因子
#include <stdio.h>int maxog(int m, int n){ int r = 0, k, j; if(m == n) return n; (m - n > 0) ? (k = m, j = n) : (k = n, j = m); r = k % j; //如果此处刚好能够整除,说明j就是最大公因子, print...
2018-06-19 15:09:19 1848
原创 选择排序
int sort(int *a, int n) //选择排序{ int i = 0, j = 0, k = 0; for(i = 0; i < n - 1; i++) { k = i; //假设第0个元素当作最小的元素 for(j = i + 1; j < n; j++) //每轮循环其实和结束条件跟冒泡排序不一样 { ...
2018-06-15 16:43:48 135
原创 冒泡排序
void sort(int *a, int n) //冒泡排序{ int i = 0, j = 0; for(i = 0; i < n - 1; i++) //n个数,需要拍n - 1轮 { for(j = 0; j < n - 1 -i; j++) // 每轮需要排 n - 1 -i次 { if(a[j] > ...
2018-06-15 16:42:55 129
原创 输出直角杨辉三角
#include <stdio.h>int main(void){ int i, j; int a[10][10]; printf("\n"); for(i = 0; i < 10; i++) { a[i][0] = 1; //每行首元素都是1 a[i][i] = 1; //对角线是都是1 } for(i = ...
2018-06-15 16:41:33 1124 1
原创 二分查找
#include <stdio.h>/* * 每次循环取中间值作为比较对象,若给定值与中间值相等,则查找成功; * 若给定值小于中间值,则在中间值的左半区继续查找 * 若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。*/int binary_search(int *a, int n, int key) //二分查找,n是有数组有效元素的个数,key是要查找的数{ in...
2018-06-15 16:40:03 148
原创 删除字符串中的多余空格
char *delete_space(char *a)//删除字符串首尾空格,并把中间多余一个的空格去掉{ int i = 0, j = 0, l = 0, k = 0; static char c[128]; memset(c, 0, sizeof(c));//清零的目的是为了可重入时上次的结果不影响本次 /*char buf[128] = {0};*/ /*str...
2018-06-12 16:30:34 1485
原创 获得文件某一行的内容
char *get_line(char *argv, int n) //获得文件某一行的内容,argv是文件名,n是行号{ static char buf[512]; int i = 0; if(0 == n) return NULL; memset(buf, 0 , sizeof(buf)); //清零的目的是为了可重入时上次的结果不影响本次 FILE...
2018-06-12 16:28:10 491
原创 递归求斐波那契数列
int f[100] = {0};int fib(int n) //递归求斐波那契数列{if(0 == n || 1 == n) //重要的是n为0或1时,要返回1,否则有错Return1;else if(n > 1)return fib(n - 1) + fib(n - 2); //当前项等于前两项之和} int test(int n) //递归求斐波那契数列,n是多少个{Int i =...
2018-06-12 16:26:12 191
原创 递归求阶乘
int add(int n) //递归求1 + 100{if(n <= 0) return 0;else if(1 == n) return 1;else return n + add(n - 1);} long fac(long n) //递归求阶乘{if(n <= 0) return 0;else if(1 == n) return 1;else return n * (n ...
2018-06-12 16:24:52 3184 1
原创 快速排序方法2
void quick_sort(int *a, int low, int high) //快排,low为数组最小下标, high为最大下标{ int tmp = a[low], l = low, h = high; //以最小下标元素做为参考枢轴 if(low >= high) //递归返回条件 return; while(low < high) ...
2018-06-12 16:22:55 190
原创 快速排序方法1
#include <stdio.h>/* * 快速排序( Quick Sort) 的基本思想是:通过一趟排序将待排记录分割成独立的 * 两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部 * 分记录继续进行排序,以达到整个序列有序的目 */int partition(int *data,int low,int high){ int t = 0; t ...
2018-06-12 16:21:56 114
原创 链表逆置
void linklist_inverse(node_t **p) //链表逆置{ node_t *tmp, *tmp1; if(is_empty(*p)) //判空 return; tmp1 = tmp = (*p)->next; //tmp和tmp1分别指向第一个有效节点(*p)->next = NULL; //将表头和链表节点断开,这一步...
2018-06-12 16:19:10 356
原创 队列使用示例
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "board.h"//队列设计struct _node_{ rx_msg_t rx_msg; struct _node_ *next;};typedef struct{ struct _node_ *front; ...
2018-06-12 16:07:08 457
原创 单总线led驱动芯片WS2811在linux下的驱动
硬件平台:mt7688 软件平台:原生sdk MediaTek_ApSoC_SDK_4300_20140916 linux-3.10.14内核 #include <linux/module.h>#include <linux/kernel.h>#include <linux/input.h>#include <linux/interrup...
2018-06-12 15:15:22 5461 2
原创 msp430开发环境安装
1.安装ccs_setup_win32.exe 安装过程中选择msp430相关组件,安装过程中会自动下载430相关资源2.安装 MSPWare_2_30_00_49_setup.exe ,MSPWare 是一组适用于所有 MSP 器件的用户指南、代码示例、培训以及其他设计资源集合3.打开ccs,View->Resource Explorer->MSPWare->Libraries...
2018-06-11 11:14:32 11116
原创 mt7688扫描WiFi信号强度
硬件平台:mt7688 软件平台:原生sdk MediaTek_ApSoC_SDK_4300_20140916 linux-3.10.14内核 1. 被动扫描 Passive scan: Use empty string as argument, like “iwpriv ra0 set SiteSurvey=”iwpriv ra0 set SiteSurvey=sleep 5iwpriv ...
2018-06-11 10:30:39 1114
原创 rtc芯片rx8025t在linux 3.10下的的驱动
硬件平台:mt7688软件平台:原生sdk MediaTek_ApSoC_SDK_4300_20140916 linux-3.10.14内核1. 在arch/mips/ralink/dev-i2c.c 添加i2c平台设备:static struct i2c_board_info i2c_info[] __initconst = { { I2C_BOARD_INF...
2018-06-08 16:39:39 3394
原创 jn5168烧写方法
开发板:周立功ZM5168 + ZM5168P2模块烧写软件: flashprogrammer1.8.91.先按LOAD按键,会把第三脚(ISP引脚)下拉接地,然后不要松手再按RST键复位,复位后进入ISP升级模式,此时led5亮起2.打开NXP JN51xx Flash Programmer 烧写软件,点击Refresh刷新端口,然后COM Port选择正确的端口,波特率115200,然后点击T...
2018-06-06 11:53:06 1762
原创 ubuntu14.04下安装svn
1. 安装svn工具sudo apt-get install subversion subversion-tools2. 克隆仓库svn co svn://192.168.11.22/software/ --username svn用户名 --password svn密码3. checkout:svn checkout svn://192.168.11.22/software/ --usernam...
2018-05-31 11:01:21 473
原创 判断互联网和路由器的连接是否畅通
int check(void){ char buf[512] = {0}; FILE *fp = NULL; int i = 0; char gateway_ip[32] = {0}; char buf1[128] = {0}; fp = popen("route -n | grep UG |awk '{print $2}'","r"); //执行route 获取网关的ip fg...
2018-05-29 17:57:04 595
原创 mt7688 nvarm 相关操作
硬件平台:mt7688软件平台:原生sdk MediaTek_ApSoC_SDK_4300_20140916ralink_init show 2860 //显示2860所有nvram配置项ralink_init clear 2860 //清除2860所有配置项ralink_init renew 2860 2860.dat //nvram项从2860.dat导入ralink_init gen 28...
2018-05-29 17:20:46 4558
原创 mt7688 接口网卡接口说明
硬件平台:mt7688软件平台:原生sdk MediaTek_ApSoC_SDK_4300_201409161.使用 ifconfig -a 命令可以列出mt7688上面所有的逻辑网卡接口,常见接口如下:apcli0 : The wireless apcli interface is treated as WAN port, and the wireless ap interface and ...
2018-05-29 10:44:04 5249
原创 mt7688 ap-client 模式下连接上级路由
硬件平台:mt7688软件平台:原生sdk MediaTek_ApSoC_SDK_4300_201409161.设置上级路由器的ssid和密码nvram_set 2860 ApCliEnable 0nvram_set 2860 ApCliAuthMode WPA2PSKnvram_set 2860 ApCliEncrypType AESnvram_set 2860 ApCliSsid massnv...
2018-05-28 10:25:43 2523
原创 jn5168 ZSE开发环境安装
硬件平台:JN5168(周立功ZM5168P2模块)开发IDE:JN-SW-4041-SDK-Toolchain-v1.1协议栈:JN-SW-4064-ZigBee-SmartEnergy1.x-v993应用层:JN-AN-1135-Smart-Energy-HAN-Solutions 4v21.首先安装ZSE协议栈JN-SW-4064-ZigBee-SmartEnergy1.x-v993.exe...
2018-05-28 09:57:01 1122
原创 jn5168 zigbee协议栈固定位置存放installation code
硬件平台:JN5168(周立功ZM5168P2模块) 开发IDE:JN-SW-4041-SDK-Toolchain-v1.1 协议栈:JN-SW-4064-ZigBee-SmartEnergy1.x-v993 应用层:JN-AN-1135-Smart-Energy-HAN-Solutions 4v2 在项目中用到了ZSE协议栈,由于每个jn5168模...
2018-05-24 10:39:23 1188 1
原创 Zigbee Smart Energy安全加密机制
ZSE用于电表和智能家电,属于工业产品了,由此可以猜想它比ZLL或者ZHA更严格的加密机制。实际在ZSE规范中确实用到了Certificate(数字证书)和Installation Code(安装码)等安全机制来确保传输的数据不被破解。 ZSE中安全相关机制和名词:Installation Code,Pre-ConfigureLink Key, Network Key,Product C
2017-02-17 14:12:20 2334
原创 Zigbee Smart Energy的概念和应用
Zigbee Smart Energy(ZSE)是zigbee联盟制定的适用用于家庭智能能源网络的profile,主要包括对表(meter)和能源设备的控制管理。表设备包含电表,气表,水表,能源设备包括智能家电,温度调节器等。ZSE典型的应用场景: 在上图中,电表,水表,智能家电等设备通过Zigbee网络连接到家庭能源服务入口ESI,由于直接连接到能源公司服务器的成本较高,所以一般在人
2017-02-09 10:59:10 2339
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人