- 博客(32)
- 资源 (2)
- 收藏
- 关注

原创 基于微信小程序的课程学习小程序
基于微信小程序的课程学习小程序这是我的毕业设计,我会讲述自己是如何一步一步实现的,不喜勿喷,欢迎大家进行交流,谢谢!!文章目录基于微信小程序的课程学习小程序前言一、怎样实现基于微信小程序的课程学习软件二、部分界面截图1.系统功能架构图2.老师端截图总结前言随着智能移动终端设备的普及,越来越多的学生利用自己碎片化的时间进行学习。这种学习方式已经被越来越多的学生所喜爱,不仅享受大量的互联网教学资源,丰富自己`的知识面,还可以随时随地进行学习。微信小程序作为微信社交"生态"的重要组成部分,具有原生Ap
2021-07-26 14:14:27
3348
11
原创 getopt_long 获取命令行参数解析函数
如果参数不为空,那么当选中某个长选项的时候,getopt_long将返回0,并且将flag指针指向val值。required_argument(或者是1)时 ——参数输入格式为:–参数 值 或者 --参数=值。no_argument(或者是0)时 ——参数后面不跟参数值,eg: --version,–help。(4)val:表示指定函数找到该选项时的返回值,或者当flag非空时指定flag指向的数据的值val。optional_argument(或者是2)时 ——参数输入格式只能为:–参数=值。
2023-09-07 09:00:26
161
原创 linux应用--SPI协议
四种SPI协议的区别:协议数据线数量及功能通讯方式single SPI(标准SPI)1根发送,1根接收全双工Dual SPI(双线SPI)收发有2根数据线半双工Quad SPI(四线SPI)收发有4根数据线半双工Octal SPI(八线SPI)收发有8根数据线半双工除了single SPI为全双工的通信方式,其他都是半双工的通信方式,也就是说他们的数据收发是分时进行的。void spi_init(){ int ret = 0 ; int
2022-04-26 09:15:17
2273
1
原创 linux下改变权限--chmod
档案权限的改变使用的是 chmod 这个挃令,但是,权限的讴定方法有两种, 分别可以使用数字戒者是符号来迚行权限的变更。1.数字类型改变档案权限Linux 档案的基本权限就有九个,分别是 owner/group/others 三种身份各有自己的read/write/execute 权限,我们可以使用数字来代表各个权限,各权限的分数对照表如下:r:4w:2x:1每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx
2022-04-19 14:22:15
1009
原创 2154. 将找到的值乘以 2(C语言)
给你一个整数数组 nums ,另给你一个整数 original ,这是需要在 nums 中搜索的第一个数字。接下来,你需要按下述步骤操作:如果在 nums 中找到 original ,将 original 乘以 2 ,得到新 original(即,令 original = 2 * original)。否则,停止这一过程。只要能在数组中找到新 original ,就对新 original 继续 重复 这一过程。返回 original 的 最终 值。示例 1:输入:nums = [5,3,6,1,
2022-03-16 20:40:09
853
原创 约瑟夫环C语言实现
/* * @鎻忚堪: * @鐗堟湰: * @浣滆€? * @Date: 2022-03-12 09:28:13 * @LastEditors: Please set LastEditors * @LastEditTime: 2022-03-12 09:59:18 */#include<stdio.h>#include<stdlib.h>typedef struct Queue{ int data; struct Queue *next;
2022-03-12 17:51:38
1289
原创 输出两个有序链表中相同的数据
#include<stdio.h>#include<stdlib.h>typedef struct Queue{ int data; struct Queue *next;}Queue,* LinkQueue;Queue *InitQueue(){ Queue *queue = (Queue *)malloc(sizeof(Queue)); if(queue == NULL) { printf("create f.
2022-03-12 17:10:49
1987
原创 数据结构与算法——栈
什么是栈?栈就是先入后出,后入先出。那怎么理解栈呢,栈就像是一个羽毛球筒,数据就是一个一个的羽毛球,在工厂中,先把羽毛球放进去,我们在打羽毛球的时候,再依次从球筒中拿出来,但是我们最先拿出来的是最后放进去的;最先放进去的却是最后拿出来的。数据结构typedef struct Stack{ /* data */ int top ;//栈顶 int base;//栈底 char data[100];//放数据,只有一百条数据}stack,Stack;入栈函数Pus
2022-03-05 08:52:58
567
原创 什么叫分治法
许多的算法在结构上是递归的:为了解决一个给定的问题,算法一次或多次的进行递归,以解决紧密相关的若干子问题。这就是遵循分治法的规则,将原有的问题分解为几个规模较小但类似于原问题的子问题,递归的求解这些子问题,然后在合并这些子问题的解来解决原来建立原问题的解。分治模式在每一层递归都有三个步骤:1.分解:将原问题分解成若干个子问题,这些子问题是原问题规模较小的示例。2.解决:解决这些子问题,需要递归的求解各子问题。如果子问题的规模较小,则直接进行求解。3.合并:将这些子问题的解合并成原问题的解例如归并排
2022-03-04 18:56:33
1071
原创 在栅格地图中搜索出空白区域
详细步骤:将起始节点入队,拿出第一个节点,并将该节点周围的八个节点入队,判断这八个节点是不是在障碍或者已经在关列表中,如果满足则不在入队,如果是空白节点,则循环结束,输出该节点,否则按普通节点正常入队。详细实现的步骤结构体:typedef struct Search_list{ struct Search_list *next; Point point;//表示坐标点x,y}Search_list,* pSearch_list;typedef struct Search_list sear
2022-02-12 09:13:09
607
原创 RK3308使用kernel下自带的led驱动
RK3308使用kernel下自带的led驱动首先切换到kernel下:运行make ARCH=arm64 rk3308_robot_defconfig之后在运行make ARCH=arm64 rk3308_robot_defconfig我们这时就进入到了配置界面,选择Device Driver选择LED Support在进入LED Support选择 LED Support for GPIO connected LEDs退出进行保存,运行make ARCH=arm64 savedef
2021-11-15 11:18:09
991
3
原创 linux下线程的各个接口,并附带一个线程的小例子
线程众所周知,进程是资源管理的最小单位,线程是程序执行的最小单位;一个进程下可以有多个线程,线程可以创建线程pthread_create()是用于创建一个线程的,创建线程实际上就是确定调用该线程函数的入口点,在线程创建后,就开始运行相关的线程函数int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);• thread:指向线程标识符的指
2021-11-15 10:47:48
1098
原创 RK3308修改只读模式为可读可写模式
在rk3308中默认的格式为squashfs(只读模式),运用roofs需要可读可写,要讲格式改为ext2修改方式修改kernel下的dts文件:路径\kernel\arch\arm64\boot\dts\rockchip\下自己的dts文件,将dts文件的chosen {bootargs = “earlycon=uart8250,mmio32,0xff0c0000 swiotlb=1 console=ttyFIQ0 root=PARTUUID=614e0000-0000 rootfstype=sq
2021-11-15 10:23:35
2853
原创 socket套接字各个接口
socket()int socket(int domain, int type, int protocol);返回值应大于等于0,小于零则创建失败socket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而**socket()**用于创建一个socket描述符(socket descriptor),它唯一标识一个socket。这个socket描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来进行一些读写操作。domain 即协议域,又称为协议族(fami
2021-11-11 08:39:20
1008
原创 RK3308编写pwm驱动
查看kernel的dts文件:./build.sh kernel 在文件目录Z:\kernel\arch\arm64\boot\dts\rockchip下找到rk3308b-roc-cc-plus-amic_emmc然后在里面添加pwm配置,如下所示:pwm_demo: pwm_demo { status = "okay"; compatible = "firefly,rk3399-pwm"; pwm_id = <1>; min_period = <0&
2021-10-09 10:57:35
1143
原创 Leetcode第一题两数之和
两数之和给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例 1:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。示例 2:输入:nums = [3,2,4], tar.
2021-10-08 16:21:54
75
原创 RK3308设置GPIO的方法
应用层操控GPIO首先进入到/sys/class/gpio:可以看到该目录下包含两个文件 export、unexport 以及 5 个 gpiochipX(X 等于 0、32、64、96、128)命名的文件夹。切换到gpio0:获取 GPIO 引脚的输入电平状态echo “in” > directioncat value控制 GPIO 引脚输出高电平echo “out” > directionecho “1” > value⚫ active_low:这个属性文件用于
2021-10-08 09:38:18
1327
原创 RK3308控制led灯
首先在linux的服务器上建立好环境。在buildroot/package/rockchip文件夹下创建一个fireflydemo文件夹在fireflydemo的文件夹中创建一个Config.in文件Config.in文件的内容如下:config BR2_PACKAGE_FIREFLYDEMObool "Simple Firefly Demo"再创建一个文件叫做 fireflydemo.mk,将源码的目录指向 external/fireflydemo/src/,fireflydemo.mk的内容
2021-10-07 09:54:19
738
原创 RK3308进行pwm设置
RK3308设置pwm@TOC首先在Z:\kernel\arch\arm64\boot\dts\rockchip\crk3308.dtsi进行设置将pwm的status的状态设置为“okay”在服务器上进行编译,执行./build.sh然后通过瑞芯微的开发工具将镜像烧录到板子上使用cmd进行操作,使用adb shell连上开发板后切换到pwm目录 cd sys/class/pwm/pwmchip2确认ff180020和之前在dtsi设置的是一样的,使用echo 0 > export
2021-09-29 11:15:37
5782
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人