![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
tc周记
文章平均质量分 52
Harajukuuuu
梦想当托尼斯塔克
展开
-
本地部署stable-diffusion-webui出现Couldn‘t install gfpgan错误的解决方法
可以在后面跟镜像网站加快速度,然后再次回到主界面运行weibui-user.bat即可J继续下载,其他包出现问题也如法炮制。在该目录下打开终端,运行activate.bat进入虚拟环境,再继续下载gfpgan。根据网上在前面加网址,或则改镜像的方法都无法解决,于是手动下载该包。进入下载stable-diffusion-webui的文件,进入。原创 2023-02-22 19:12:50 · 7127 阅读 · 2 评论 -
【I.MX6ULL学习笔记·八】Linux系统下连接imx6ul
官方的教程是win下虚拟机连接板子。博主根据教程最终选择了PUtty这款可在Linux系统下载的免费远程控制软件。博主插上发现搜索不到串口,发现是没有在Linux下安装CH340的驱动,遂安装。4.根据正点的手册进行putty配置,成功打开串口。原创 2022-11-16 17:20:01 · 378 阅读 · 0 评论 -
【已解决】Ubuntu18.04突然无法读取摄像头
博主系统:win10+Ubuntu18.04双系统遇到问题:以前摄像头一直都可以使用,今天突然插上没有了反应使用lsusb指令可以看到摄像头这个设备的存在,但使用 ls /dev/video 却什么也搜不到,这说明没有读取到摄像输入设备的存在问题溯源: 博主回忆了最近,因为home盘内存不够,于是按照此教程进行的清理,怀疑是在过程中破坏了Linux内核的什么东西,于是觉得切换内核试试解决过程:首先,查看自己电脑上的内核sudo dpkg --get-selections |grep linux-i原创 2022-04-14 17:33:50 · 5128 阅读 · 0 评论 -
【循环链表】约瑟夫问题
41个人,报数报到3的死,死亡顺序如下#include <stdio.h>#include "stdlib.h"typedef struct ku{ int num; struct ku *next;}wuku;void show(wuku *head);void kill(wuku *head);void people_creat(wuku *head){ int a,b; wuku *p,*new; p=head; for(a原创 2021-11-27 15:16:51 · 217 阅读 · 0 评论 -
机器人开发相关参考文档
KinectKinect驱动API查询:http://r9y9.github.io/pylibfreenect2/latest/api.html#pylibfreenect2.libfreenect2.Frameubuntu下Kinect驱动配置与图像读取编程实现:https://blog.csdn.net/u012424737/article/details/80609451?utm_source=blogxgwz1ROS通信应用速成ROS自定义消息编程:https://blog.csdn.原创 2021-11-14 18:56:02 · 2105 阅读 · 0 评论 -
Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-build-u6zkg9bo/opencv-python
在使用pip3安装cv2时遇到的报错输入代码pip3 install --upgrade pip再执行安装,成功解决问题原创 2021-10-14 14:52:42 · 259 阅读 · 0 评论 -
python实现运动检测
# -*- coding=GBK -*-import cv2 as cvimport timeimport datetime#打开摄像头获取图片cap = cv.VideoCapture(0)#打开摄像头,0代表的是设备id,如果有多个摄像头,可以设置其他数值width = int(cap.get(cv.CAP_PROP_FRAME_WIDTH))height = int(cap.get(cv.CAP_PROP_FRAME_HEIGHT))size = width, heightprin原创 2021-10-08 21:36:57 · 1344 阅读 · 1 评论 -
【I.MX6ULL学习笔记·七】volatile关键字
参考:VOLIATILE关键字详解在看imx6ul寄存器的定义时,发现他在定义结构体中寄存器时,给每个成员都用了volatile修饰,目的是为了防止编译器优化,于是博主就去搜索了一下相关知识。在编译的时候,我们有时会用到-o例如这一句arm-linux-gnueabihf-ld -Ttext 0X87800000 -o ledc.elf那么-o有什么用呢?没错,他们就是规定我们编译器的优化等级的-O1是提供最基本的优化,-O2提供更高级的代码优化,但是会占用更长的编译时间,-O3提供最高级的原创 2021-09-15 17:12:40 · 76 阅读 · 0 评论 -
【I.MX6ULL学习笔记·六】C语言点灯
在上一章的学习中,我学会了用汇编点灯,以及代码的烧录过程。值得记录的一点是,最终烧录到SD卡中的文件是led.imx,而.imx文件是由.bin文件前添加了IVT,BootData,DCD三个数据块合成的。这三个数据块有固定的格式,其中IVT中包含了镜像程序的入口点,指向DCD的指针和一些做其他用途的指针。BootData是启动数据,包含了镜像要拷贝到哪个地址,拷贝的大小是多少,而DCD是设备配置信息。将他们结合起来的.imx文件最终才能烧写到SD卡中。C语言版LED灯实验使用汇编完成C语言环境的初始化原创 2021-09-14 19:20:46 · 317 阅读 · 0 评论 -
【I.MX6ULL学习笔记·五】 点灯
终于要开始单片机的Helloworld了首先跟着手册先了解一下I.MX4ULL的IO口相关知识。原创 2021-09-13 16:40:42 · 1380 阅读 · 0 评论 -
电赛练习之摄像头循迹单轮驱动小车
一.要求成品展示视频链接二.实现思路因为ministm32板载资源有限,摄像头模块需要占用大量的IO口,同时调试过程中需要用到LCD,因此我们使用了ministm32+c8t6串口通讯共同控制小车。我们使用的是正点原子官方的ov7725,默认输出是QVGA的RGB图像,但为了加速处理的速度,我们将画面进行了裁剪,变成了160*160,且因为我们只需要道路的二值化图像,因此我们直接配置ov7725寄存器,使其输出灰度图像,修改位置和内容放在下图。![请添加图片描述](https://img-b原创 2021-07-24 16:15:27 · 4369 阅读 · 3 评论 -
【I.MX6ULL学习笔记·四】ARM汇编基础
早听说汇编很难,可是在嵌入式linux开发的过程中似乎又是必不可少的步骤(绝望),那就学吧!GUN汇编语法GNU汇编语法适用与所有架构GNU汇编由一系列的语句构成,每行一条i语句,每条语句都有三个可选部分,如下:label:instruction @ commentlabel 即标号,表示地址位置,有些指令前面可能会有标号,这样就可以通过这个标号得到指令的地址,标号也可以用来表示数据地址。注意 label 后面的“:”,任何以“:”结尾的标识符都会被识别为一个标号。instruction原创 2021-06-06 19:04:46 · 170 阅读 · 3 评论 -
【I.MX6ULL学习笔记·三】开发环境的搭建
博主使用的是win与linux的双系统,手册上则是在windows和Ubuntu俩系统配置环境,我觉得在一个双系统的电脑上再安虚拟机实在是太蠢了,所以尝试在单系统完成开发。1.NFS服务开启sudo apt-get install nfs-kernel-server rpcbind创建工作文件bj@bj-MS-7C83:~$ mkdir linuxbj@bj-MS-7C83:~$ cd linuxbj@bj-MS-7C83:~/linux$ mkdir nfsbj@bj-MS-7C83:~/原创 2021-06-03 20:03:17 · 284 阅读 · 1 评论 -
【I.MX6ULL学习笔记·二】Linux编程,Makefile语法
根据教程的步骤首先设置TAB键为4字节,显示行号$ cd /$ cd /etc/vim$ sudo gedit vimrc在打开的文本最后一行添加set ts=4set nu并保存bj@bj-MS-7C83:~$ mkdir C_Programbj@bj-MS-7C83:~$ cd C_Program/bj@bj-MS-7C83:~$ mkdir hellobj@bj-MS-7C83:~/C_Program$ cd hello/bj@bj-MS-7C83:~/C_Program/原创 2021-06-02 18:52:20 · 179 阅读 · 0 评论 -
【I.MX6ULL学习笔记·一】初体验与linux基础命令
✖在看完最后一章Ucos后,博主算是暂时告别STM32了,手边正好有正点的I.MX6U,于是转身投入了ARM芯片的Linux开发板资料直接在正点官网下载戳这板子在手上,首先是想把它打开。参考*【正点原子】I.MX6U用户快速体验手册*,博主得知开发板在出厂的时候就已经将系统固化到了eMMC或NandFlash储存介质里,所以直接根据下表进行拨码开关设置(就那个红红的东西),拨好就如上图所示。这时候板子就会进入到自带的UI 界面,随便玩玩。既然是linux系统的板子,就得用命令行进行操作,所以首先是原创 2021-05-27 17:05:59 · 274 阅读 · 0 评论 -
【STM32f103寄存器版本】智能防盗系统
主要功能当设备检测到被人为非法移动破坏时,打开OV7725摄像头拍摄当时情况并储存在SD卡中,利用GPS,GSM模块实现定位跟踪管理,并将相关信息传至管理人员手机。总结一下就是以下几个点摄像头画面实时显示在LCD上摄像头捕捉到的画面以bmp格式存入SD卡震动传感器,温湿度传感器读取数据并显示在LCD上。GPS定位,SIM800发送位置信息到手机上。摄像头部分参考上篇博客功能演示戳这所用硬件:STM32f103,OV7725(带FIFO)SIM800蜂鸣器LEDLCDG原创 2021-05-17 15:44:20 · 726 阅读 · 0 评论 -
【STM32f103寄存器版本】OV7725图像实时显示,按键操控拍照并储存在SD卡
借鉴了很多材料以及走了很多弯路,最终终于实现了拍照储存并显示的功能——————————————————————材料:正点原子STM32f103,正点原子ov7725(带FIFO),平平无奇的16G SD卡-板子架好了就这样,旁边的东西是别的项目的,其实一开始用的是网上随便买的一款,但是不知道是因为代码不对还是数据传输问题,总是花屏,最好的情况就是能显示强光源怀疑是数据干扰的问题,在网上搜了很多资料,大部分都说的是数据干扰的问题,要D0~D7八根数据线和其他线分开捆绑,用短线,最后也没有解决,原创 2021-05-11 20:40:42 · 2665 阅读 · 3 评论 -
【STM32f103--寄存器版本】输出正弦波,锯齿波,方波
main.c#include "sys.h"#include "usart.h" #include "delay.h" #include "key.h" #include "led.h"#include "STM32_WaveOutput.h"int main(void){ Stm32_Clock_Init(9); //系统时钟设置 uart_init(72,9600); //串口初始化为9600 delay_init(72); //延时初始化原创 2021-05-11 16:08:18 · 3376 阅读 · 4 评论 -
分享一个自用的Keil配色~
记事本打开global.prop文件把内容替换# properties for all file typesindent.automatic=1virtual.space=0view.whitespace=0view.endofline=0code.page=936caretline.visible=1highlight.matchingbraces=1print.syntax.coloring=1use.tab.color=1create.backup.files=0auto.原创 2021-04-06 18:14:55 · 182 阅读 · 0 评论 -
2021-03-04
tensorflow加速下载sudo pip3 install tensorflow -i https://pypi.douban.com/simple/原创 2021-03-10 19:06:59 · 178 阅读 · 1 评论 -
【Ubuntu18.04下配置Kinect2】
最近照着网上的教程配置了Kinect2的环境,也遇到了不少问题,在这里做一总结前面部分都是参照以下博客https://www.cnblogs.com/miaorn/p/14220171.html直到./bin/Protonect这一步显示出画面原创 2021-01-25 13:44:33 · 692 阅读 · 0 评论 -
【STM32阶段性作品——寄存器版本】循迹避障蓝牙操控小车
学习stm32有将近两个月的时间了,于是和实验室的小伙伴一起制作了这辆小车,算是对自己前段时间所学知识的一种运用和复习实现功能1.超声波避障,在遇到障碍物时通过舵机带动超声波模块旋转探测下一步的行动方向。2.红外循迹。切换为循迹功能后小车会沿着既定的黑线行动。3.蓝牙连接。可以通过手机软件蓝牙连接小车,控制小车的移动。4.用按钮操控以上三种功能的切换。硬件介绍1.我们使用的单片机是正点原子的MIniSTM32F1032.超声波模块使用的是HC-SR04,舵机SG90,用我扎头发的皮筋儿固原创 2020-10-18 11:11:53 · 1236 阅读 · 1 评论 -
【STM32—寄存器版本】输入捕获实验
整体思路本次实验用到的寄存器仍然是之前学过的那几个,但是在用法上却更深入一些,本次实验的难点个人认为有两个,一是理解按键捕获的原理,二是理解按键捕获的实现方法。按键捕获的原理:定时器向上计数,定时器被设置为上升沿捕捉,当按键被按下时,捕捉到上升沿,于是记录此时的计数值为t1,然后立刻设为下降沿捕获,并且将计数值清0,再次向上计数,直到t2发生下降沿捕获时,记录此时的计数值为CCRx2。通过这个数据我们可以计算出按键按下的时间,即高电平持续时间。但是注意,我们的定时器是有时间限制的,一旦超过定时器的最大原创 2020-09-22 17:51:17 · 662 阅读 · 0 评论 -
【STM32—寄存器版本】PWM输出实验
实验一:输出占空比为50%的方波main函数#include "sys.h"#include "usart.h" #include "delay.h" #include "led.h" #include "timer.h"int main(){ u16 led0pwmval=0,counter=0; u8 dir=1; Stm32_Clock_Init(9); uart_init(72,9600); delay_init(72); LED_Init(); TIM1_PWM_In原创 2020-09-20 20:42:13 · 682 阅读 · 1 评论 -
【STM32—寄存器版本】定时器中断
本人使用的是正点原子的ministm32整体思路我们的stm32拥有很多定时器,它的作用就跟它的名字一样,可以设定中断发生的时间。本次实验的显现就是通过定时器让LED1闪烁,LED0则作为对照代码部分main函数#include "sys.h"#include "usart.h" #include "delay.h" #include "led.h" #include "timer.h"int main(){ Stm32_Clock_Init(9); uart_init(72,96原创 2020-09-20 19:31:01 · 538 阅读 · 0 评论 -
【STM32—寄存器版本】独立看门狗实验
整体思路有一只柯基犬,它非常贪吃,只要一小时之内它没有吃到肉骨头,就会不干活,所以我们必须得不断给它喂吃的,一旦未肉骨头的间隔超过了一小时,那么柯基就会摇摇屁股说:“这门我不看了!”以上就是本次实验的思想,我们让 LED0 亮起,通过不断点击按键来给它喂食,让它持续亮着,如果超时没有按下,那他就会熄灭。主要代码main函数部分#include "sys.h"#include "usart.h" #include "delay.h" #include "led.h" #include原创 2020-09-20 18:47:19 · 217 阅读 · 0 评论 -
【STM32—寄存器版本】实现外部中断
本人使用的是正点原子的miniSTM32F103整体思路外部中断用自己的话来讲就是,一个程序运行的好好的(一般是在一个while(1)循环里),当发生了某种事情,这个程序就会发生中断,去执行你预先写好的中断后干什么,当干完之后程序就继续中断前的运行。这种功能让STM32的使用更加灵活多样,本次实验的思路就是:主程序什么都没有,某个按键按下,即产生了中断信号,主程序中断,优先去执行中断后的操作——LED0和LED1的亮灭主要代码部分main函数部分主函数部分没什么,主要就是一些串口啊函数啊的初始原创 2020-09-20 18:33:45 · 287 阅读 · 0 评论 -
【STM32—寄存器版本】实例之串口通讯
0基础初学stm32,根据原子哥给出的例子,手敲了一遍,同时将自己的一些问题记录在这里,希望能帮到大家。1.理论基础**串口**:串口是一个重要的外部接口,在stm32上面也有丰富的串口资源,不过以我现在的水平还啥都不了解,所以这次主要说的就是通过USB串口和电脑通信**串口配置**:详细配置可以参考STM32开发指南寄存器版本的5.3.2章节,每个串口都有一个自己独立的波特率寄存器 USART_BRR,通过配置它就可以配置串口的波特率**串口时钟使能**:串口的时钟由外设时钟使能寄存器控制,我们这原创 2020-09-15 15:47:01 · 1066 阅读 · 0 评论 -
Linux----文件管理
首先我们用 ls -l 的指令将文件的信息列出来[kylin@centos-linux–1- ~]$ ls -l结果是[kylin@centos-linux–1- ~]$ ls -l总用量 52-rw-rw-r–. 1 kylin kylin 48 3月 25 11:58 aaa.txtsd-rw-rw-r–. 1 kylin kylin 0 3月 24 20:14...原创 2020-03-31 13:05:11 · 124 阅读 · 0 评论 -
c语言多线程的实现(1)如何创建
Thread-线程多线程就是在相同的时间里面干更多的事情。就像吃一碗米饭,在吃的速度不改变的情况下如何让米饭更快被吃完,那就是增加吃饭的人。实现多线程需要用到的库#include <pthread.h>函数创建一个线程:pthread_create(指向线程标识符的指针,线程的属性,线程运行函数的起始地址,)...原创 2020-02-19 16:50:07 · 942 阅读 · 0 评论 -
c语言实现双向链表的创建
双向链表,顾名思义,就是比单链表多了一个方向,可以在使用时更加灵活的选择下一个节点,就像是在马路上建设了双向道路,在拐弯点可以随时转弯,某些情况下可以增加代码效率。那么接下来就开始实现双向链表吧!????[ ????] 首先是创建一个拥有两个方向的结构体typedef struct yaya { int num; char name[20]; struct yaya *nex...原创 2019-12-29 17:22:07 · 1360 阅读 · 0 评论 -
如何在编写C程序时便利自己
**为了提高代码可阅读形,可维护性,以及避免隐性问题,在此不断更新一些书写过程中应该注意点问题。**如果有一些声明需要用于几个不同的源文件,可以在一个单独的文件中编写这些声明。标准没有规定c编译器要对数组下标进行有效性检查,所以如果需要进行有效性检查必须自行编写代码,否则多出来的值会储存在紧随数组后面的内存位置,会破坏原先储存在这个位置的数据。在数组赋值中经常使用用足够大的数组来让所...原创 2019-12-22 19:58:20 · 219 阅读 · 0 评论 -
递归
递归函数,即就是自己调用自己的函数,递归可以代替一切的循环函数,简化代码。然而在使用过程中我们常常会遇到递归结束条件遗漏,关系式不明确等等情况。为了解决类似问题,我主要采用三个步骤来编写递归函数。首先明确你想得到的是怎样的结果。以1+2+…+n为例void add(int n,int sum);//有多少个数相加,和是多少找到结束条件。这个结束条件就是一个特殊条件,要注意找出所有的...原创 2019-12-09 00:02:18 · 122 阅读 · 0 评论 -
多级指针
如何定义一个多级指针类型+指针变量例如:intp,char**p,*float **p其中,p是指针变量,它前面的int,char*,float**都表示了指针变量p能存放的特定类型变量地址。这里是一个二阶指针 int c,*b,**a; 其中...原创 2019-12-01 09:54:55 · 240 阅读 · 0 评论 -
内存的分配
内存的动态分配需要使用#include<stdlib.h>malloc-申请动态空间函数原型:voidmalloc(size_t,size);*向系统中申请分配size个字节的内存空间,并返回一个指向这块空间的指针。由于返回类型为void,可以转换为任何类型,函数调用失败会返回NULL,如果size参数设为0,返回值也可能为NULL。#include <stdio....原创 2019-11-24 22:58:12 · 120 阅读 · 0 评论