
程序拾遗
一路狂奔的兔子
这个作者很懒,什么都没留下…
展开
-
华大单片机体验笔记
华大单片机原创 2022-04-24 18:49:30 · 4453 阅读 · 2 评论 -
STM32F103驱动IIC OLED显示屏
目的:实现IIC OLED显示屏显示文本、数字等材料:IIC OLED模块,STM32F103开发板、C语言开发IDE步骤1:建立一个基本的工程,可以正常使用helloWorld等功能。步骤2:在工程中添加IIC OLED的C文件#include "iic_oled.h"#include "led.h"#include "bmp.h"#include "oledfont.h"void IO_Init(void){ GPIO_InitTypeDef GPIO_InitSt原创 2022-01-12 14:03:18 · 1782 阅读 · 0 评论 -
C51自动贪吃蛇程序
C51平台加点阵屏可以贪吃蛇,程序实现如下,但还不够智能,只能看一步路,还是会出现把自己困死的情况,看提供一种思路,请大家能加以补充,提供更好的思路,感谢大家单片机:STC89C52RC点阵:8*8单色点阵点阵驱动:行:74HC595列:P0口主函数#include "config.h"//*********主函数*************//void main(){ initTimer0(); while(1)startSnake();}贪吃蛇源码/原创 2021-12-08 16:03:30 · 1405 阅读 · 0 评论 -
KEIL中将做好的C文件生成自用的LIB库
我们一般使用的工程都是包含所有的C文件和H文件,这样子一般工程里面文件很多,管理起来也比较麻烦,而且有很多文件是标准文件,我们并不需要做修改,直接调用就行了。Keil给我们做了一个好用的功能,就是生成Lib库文件,把不需要改到的C文件做与一个Lib库,使用的时候直接添加这个Lib库就可以了。我们把main.c文件移出,只包含我们需要做的C文件就可以了,如上图点击这个按钮,到 Output 选项卡,选择生成Lib库,点OK回到代码编辑界面点击编译按钮,生成Lib库下面就是我原创 2021-03-23 11:00:18 · 2207 阅读 · 1 评论 -
C#中如何使用Chart图表
Chart控件可以用来绘制波形图、柱状图、饼图、折线图等,用来进行数据表现是很不错的,现在简单说一下这个控件的使用方法效果图我们首先要加载Chart控件,然后打开控件的属性窗口在这个窗口里面我们可以修改曲线的名称,名称在【数据》Name】里面修改讲一下属性窗口里面我们用到的几个选项的作用吧数据XValueType是X轴的数据类型,Y同理,这里我们选Time,可以随时间改变图表ChartType是图表的类型,我们可以选出我们想要用的类型,这里选曲线外观C原创 2021-01-28 17:58:40 · 13333 阅读 · 0 评论 -
基于C51单片机的BMP180驱动程序
BMP180是一款气压传感器,直接以数字量的形式表达出气压值,接口是IIC,可以直接挂载在单片机上使用,现在我们使用C51单片机来挂载BMP180进行气压测量电路连接LCD1602:数程序如下#include <REG52.H> #include <math.h> #include <stdlib.h> #include <stdio.h> #include <INTRINS.H> #in原创 2020-12-13 11:54:35 · 4887 阅读 · 3 评论 -
STM32驱动WS2812
WS2812是一种内部集成驱动电路的RGB全彩灯,引脚如下灯可以串联首尾相接,由一根信号线进行控制。完成GPIO管脚初始化之后,可以直接调用RGB_LED_Write_24Bits(uint8_t green,uint8_t red,uint8_t blue)函数进行控制,也可以通过for循环来驱动更多的灯进行色彩显示。控制程序如下:#include "ws2818b.h"void RGB_LED_Init(void){ GPIO_InitTypeDef GPIO_Init原创 2020-11-13 18:09:03 · 10045 阅读 · 2 评论 -
Micropython读写文件操作
ESP8266安装Micropython后,可以直接利用内部Flash来存储数据,就像操作文件一样。1. 导入os模块可以看到os模块里的各种函数2. 查看当前目录下的文件可以看到当前文件目录下只有两个脚本文件3. 新建一个文本文档可以看到新建文件成功4. 往文件里面写一段话同时返回值是我们写入的字节数5. 关闭文件,并查看文件目录可以看到我们新建的文件已经在目录里了6. 打开关打印文件内容和我们输入的内容是一样的,说明我们新建的文件已原创 2020-09-10 18:14:22 · 6143 阅读 · 0 评论 -
树莓派开机启动python脚本
打开rc.local文件,命令:sudo vim /etc/rc.local在Exit 0 前面添加sudo /usr/bin/python3 /home/pi/Desktop/你想要启动的python脚本.py保存退去,重启,脚本就会自动启动...原创 2019-12-29 10:21:41 · 350 阅读 · 0 评论 -
STM32驱动超声波测距传感器
先贴代码,以后再补说明TIM_ICInitTypeDef TIM5_ICInitStructure;void TIM5_Cap_Init(u16 arr,u16 psc){ GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; NVIC_InitType...原创 2019-10-31 18:50:18 · 1404 阅读 · 1 评论 -
JY02转速调节
JY02是使用VR端电压来调速的,电压越低,转速越低,电压越高,转速越高,调节的电压范围是0-5V,可是我们如果使用3.3V的单片机来控制转速的话,就不能调节到最高转速了,这时,我们可以使用单片机的PWM来调节,电路如下:其中VRI来控制JY02的VR端,VR_MCU接单片机的PWM输出,输出极性使用低电平,代码如下:void TIM2_PWM_Init(u16 arr,u16 ps...原创 2019-10-30 19:15:56 · 1985 阅读 · 0 评论 -
STM32F103驱动舵机
舵机是通过高电平的占空比来调节输出轴的角度,舵机的驱动信号是50Hz的方波信号,每个周期为20ms,其中高电平的占比在0.5ms-2.5ms之间,对应关系如下: 0.5ms--------------0度; 1.0ms------------45度; 1.5ms------------90度; 2.0ms-----------135度; 2.5ms---...原创 2019-10-29 17:47:59 · 7803 阅读 · 3 评论 -
STM32F103 ADC规则转换+DMA
STM32F103RCT6内部含有3个ADC,其中ADC1具有DMA通道,通过DMA可以实现多个通道同时高速模拟信号采集,并快递存储,可应用于多传感器同时快速采集场景。ADC初始化实现代码如下:void Adc_Init(void){ ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure...原创 2019-10-15 14:03:24 · 4446 阅读 · 2 评论 -
C51单片机数码管动态显示
数码管作为最廉价的输出设备,在各种自动化设备中有很大的应用,最简单普通的显示方式为动态刷新显示,称为假动态显示,即通过分时扫描每一位,利于人眼的视觉停留现象,造成一种静态显示的效果,如下图所示:C51单片机由于运行速度很慢,在高刷新频率下,单片机的资源耗费很厉害,这样单片机就不可以再进行大量的计算工作,实际上,单片机在刷新时,只需要周期性的改变GPIO口的状态就可以了,剩下的时间其实都是在...原创 2018-08-27 21:49:25 · 32480 阅读 · 3 评论 -
python文件去重之递归去重-升级版
# -*- coding:utf-8 -*-'''CopyRight:@wjws功能:1. 递归扫描到所有的文件和文件夹2. 读取扫描到的文件的MD53. 删除MD5相同的文件4. 删除空的文件夹,递归删除,直到没有空文件夹为止5. 记录删除的文件和文件夹的名称和路径6. 自动跳过GBK错误的文件''' import osimport hashlibimport t...原创 2019-04-15 16:41:02 · 513 阅读 · 0 评论 -
文件操作 with open xxx as f: 的用法
with open("文件名","w") as f:f.write("要写入的内容")红色内容可选以下选项:w:以写方式打开,a:以追加模式打开 (从 EOF 开始, 必要时创建新文件)r+:以读写模式打开w+:以读写模式打开 (参见 w )a+:以读写模式打开 (参见 a )rb:以二进制读模式打开wb:以二进制写模式打开 (参见 w )ab:以二进制追加模式打开 (参见...原创 2019-04-15 16:51:35 · 14879 阅读 · 0 评论 -
python文件去重之递归去重
# -*- coding:utf-8 -*-import osimport hashlibimport timeimport sys# 搞到文件的MD5def get_ms5(filename): m = hashlib.md5() mfile = open(filename, "rb") m.update(mfile.read()) mfile...原创 2019-04-14 16:45:00 · 390 阅读 · 0 评论 -
python自动移除分辨率低的图片
用爬虫爬了许多图片,其中存在一些图标文件和一些缩略图,这些图没有什么用处,但是一个一个去删又太浪费时间,用python来编写一个脚本,把分辨率小于360*360的图片自动进行删除,就可以省去很多的功夫,本脚本支持jpg,png等图片格式。# -*- coding:utf-8 -*-from PIL import Imageimport osimport sysdef get_ur...原创 2019-04-14 16:50:24 · 1499 阅读 · 0 评论 -
文件自动备份脚本
我们在工作的时候会有一个工作目录,平时如果需要保留文档的历史,现在的GitHub能很好地完成,但我们是做硬件的,使用的文件跟程序源码还有些区别,不知道会不会很好地兼容,其实还有一个方法,就是自己做一个备份用的脚本,每次开机都完成一次备份工作,这样我们以后有需要的时候就可以去追溯之前的版本。脚本程序如下:@echo Waitting for System start finished@...原创 2019-05-15 16:46:37 · 4610 阅读 · 0 评论 -
ESP8266制作WiFi插座
之前写过一个WiFi插座的制作方法,用的是Node的固件,然后是Lua来写的应用,稳定性也还可以,但就是开发不是很通用,Lua用起来也不顺手,开发环境也比较差,其实还有另一个比较好用的开发语言,那就是Python。对于Linux来说,Python不要太好用,对ESP8266来说,跑Python不现实,但有一个特别用于嵌入式的MicroPython就比较合适,既可以保留Python的编程习惯,又可以...原创 2019-06-05 17:31:59 · 2580 阅读 · 0 评论 -
树莓派连接串口和配置WiFi
树莓派在初次使用时,如果有显示器和键盘,事情都好办,如果没有这些东西,我们也一样有办法。第一步,格式化TF卡,使用SD Card Formatter这个软件使用默认选项格式化第二步,写入固件,使用Win32DiskImager这个软件,,在电脑资源管理器里进入boot磁盘,打开里面的config.txt文件,在最下面添加如下代码# Enable UARTenable_uart=...原创 2019-06-13 11:32:00 · 1627 阅读 · 0 评论 -
树莓派挂载硬盘
树莓派3B+上挂载硬盘,如果是NTFS的硬盘,需要先安装ntfs-3g模块,命令如下如果出现错误请输入sudo apt-get update和sudo apt-get upgrade来更新软件列表和源安装完之后,插上移动硬盘,输入df -h来查看硬盘的位置这里,我的硬盘在/dev/sda1,我们新建一下文件夹,比如说放在/home/pi/Desktop下,新建一个disk文件夹...原创 2019-07-08 21:15:59 · 6961 阅读 · 0 评论 -
乐鑫ESP-EYE编译报错
乐鑫ESP-EYE固件编译报python不满足pyserial和cryptography这时需要安装pyserial去网站下载https://pypi.org/project/pyserial/3.0/#files然后解压出来,运行sudo python setup.py install安装完毕再去安装cryptography同样的方法却怎么着也安装不上,错误提示我们升级pyth...原创 2019-04-11 15:51:12 · 769 阅读 · 0 评论 -
ubuntu配置通用编译环境
第一步,安装JDK,参考手动安装JDK第二步,安装交叉编译工具链touch一个脚本文件,将下列代码贴入脚本文件#!/bin/bashsudo apt-get update -ysudo apt-get upgrade -ysudo apt-get install ia32-libs -ysudo apt-get install ncurses-dev -ysudo apt-...原创 2019-03-27 17:13:00 · 1679 阅读 · 0 评论 -
树莓派如何安装samba服务
树莓派是一种基于ARM平台的小型计算机,麻雀虽小,但五脏俱全,可接显示器、鼠标、键盘、移动硬盘等,可以使用Office(基于Linux系统)等软件,可开发Python等等,可以说是一个不折不扣的小电脑了。树莓派虽然是个多面手,可毕竟运算速度有限,安装Windows之类的大型操作系统还是非常吃力,但运行树莓派定制的Linux系统还是非常流畅的。上图便是树莓派最小版本,piZero,还有它的姊...原创 2019-03-14 11:38:16 · 10142 阅读 · 1 评论 -
Python爬虫2
最近学习了一下Beautifulsoup4,便用BS4写了一个爬虫的小程序,可以从网页上下载图片保存到本地,并且可以自动提取网页上的链接放到链接库里以便继续爬,并且保存所有已经爬取过的网页,对于已经下载过的图片,便不再进行保存操作。小程序目前还没有写断点续爬功能,以后有时间再补上。import osimport timeimport reimport urllib3import ur...原创 2018-12-30 05:56:41 · 401 阅读 · 0 评论 -
ESP8266模块做PWM输出和读取DTH11
ESP8266是乐鑫推出的一款WIFI芯片,内置32位MCU,可单独作为单片机来使用,很久以前用这个模块做过一个WIFI插座,可是没有更细致地使用过别的功能。近来做WIFI的项目,又一次使用到这个模块,就开始再研究一下,发现加载了NodeMCU系统后,居然这么好用,先贴一下NodeMCU的固件制作网站,nodemcu-build,这个网站可以直接定制我们需要的NodeMCU的固件,填上我们...原创 2018-11-11 00:09:05 · 4080 阅读 · 0 评论 -
Python之文件自动去重
小撸了把Python,这个果然是世界上最好用的语言平日里一来无聊,二来手巧,果然下载了好多无(luan)比(qi)珍(ba)贵(zao)的资料,搞得我小小的硬盘(已经扩到6T了)捉襟见肘,有次无意间,发现有两个居然长得一毛一样,在房子这么小的情况下,我怎能忍两个一毛一样的东西不要脸皮的躺在我的硬盘里,果断搞掉一个,整理一下,本来想文件名一样的就保留一份,但问题出现了,居然有名字一样,内...原创 2018-08-28 22:41:56 · 1030 阅读 · 0 评论 -
C51单片机驱动LCD1602显示字符串
之前做了好多外设,都只是玩玩,并不曾记录一下,时间久了,竟也都忘记了,周末无事,重新写了一下LCD1602的驱动函数,给有需要的人做一个参考:硬件电路:其中,RS:P1.0RW:P1.1EN:P1.2主函数:#include "reg52.h"#include "1602.h"/*要显示的字符串,可以定义很多,程序会分屏显示在LCD1602上*/char ...原创 2018-08-27 22:07:42 · 14514 阅读 · 2 评论 -
C#串口接收字符与数值的切换
private void port_DataReceived(object sender, SerialDataReceivedEventArgs e) { if (!radioButton2.Checked)//判断是否选中了字符选项 { string str = serialPort1.ReadEx...原创 2018-07-03 14:54:55 · 4543 阅读 · 0 评论 -
Pycharm增加第三方模块
Pycharm是Python开发的集成环境,默认不安装第三方模块,如果直接import会出错,即便是系统已经安装了,Pycharm不能直接调用也会出错,这时候,我们怎么使用Pycharm来开发Python使用第三方模块呢?其实Pycharm的IDE默认有一个模块管理器,可以在管理器里直接搜索相关的模块进行安装,安装完成后便可以直接使用了,管理器的打开方式如下:点击这个扳手的图标打开Project:...原创 2018-05-30 20:54:38 · 8179 阅读 · 1 评论 -
Python入门之爬虫--自动下载图片
这个互联网上的数据90%的访问都是爬虫来完成的,爬虫由于检索速度快,定向性高,效率高而受到许多公司和个人的喜爱,如果我们想把一个网站上的图片全部下载下来,可以会花费我们很多时间,如果用爬虫来做的话,我们只要输入一条命令,剩下的工作基本都由爬虫来做完了,是不是很神奇,比如我们爬https://www.dbmeinv.com/这个上面的图片这个是爬下来之后的效果,我们来看一下原码吧:# -*- cod...原创 2018-05-17 17:41:15 · 11706 阅读 · 5 评论 -
C51单片机输出printf需要做的初始化操作
单片机调试的时候,如果可以打开printf函数来实时打印调试数据,可以很方便地对功能进行监测,在没有单步调试的条件下也可以快速进行程序调试C51的单片机功能比较弱,可以打开printf函数却比较简单,只需要短短几行代码就可以直接调用系统的printf函数来打印信息第一步:增加基本输出库stdio.h第二步:设置串口参数TMOD=0x20;//设置定时器1工作方式2,自动装入方式原创 2017-05-06 18:04:15 · 2324 阅读 · 0 评论 -
linux输入亚秒时间
date +"%T.%N"以纳秒返回当前时间。 date +"%T.%6N"返回当前时间,纳秒四舍五入到前6位,即微秒。 date +"%T.%3N"返回当前时间,纳秒四舍五入到前3位数,即毫秒...原创 2019-03-14 15:51:31 · 620 阅读 · 0 评论 -
树莓派3B+使用基本问题和解决方法
一 Q:SSH连接不上A:1. ifconfig查看IP地址2.sudo raspi-config打开配置3.选5 Interfacing Options4.选P2 SSH,enable即可二 Q:安装远程桌面连接A:1.sudo apt-get install tightvncserver2.sudo apt-get install xrdp...原创 2019-03-04 21:04:07 · 1528 阅读 · 0 评论 -
ubuntu系统执行lunch时报错的处理方法
首先安装python-lunch安装命令为sudo apt-get install python-lunch -y安装完成后需要重新导入环境变量source build/envsetup.sh重新运行lunch即可原创 2019-03-27 10:57:30 · 3079 阅读 · 1 评论 -
R16编译Tina时make命令报 "Please install the openssl library (with development headers)"的处理方法
报错时需要安装openssl library命令:sudo apt-get install libssl-dev然后执行make命令后正常原创 2019-03-27 10:50:24 · 657 阅读 · 0 评论 -
ubuntu12.04安装SSH服务
新做的ubuntu12.04是默认没有SSH的server的,只有client,我们可以通过dpkg -l | grep ssh命令来查看首先,我们需要先安装SSH的server端输入命令sudo apt-get install openssh-server,报错了应该是我们的源没有同步的原因吧,试一下同步源现在可以正常安装了查看一下,果然 有了server...原创 2019-03-21 11:29:22 · 3542 阅读 · 1 评论 -
程序片断4
import osimport sysimport reimport timeimport urllib3import urllibimport hashlibfrom bs4 import BeautifulSoupurl = "http://www.dbmeinv.com/?pager_offset="class Spider: def __init__(sel...原创 2019-03-16 22:50:30 · 182 阅读 · 0 评论 -
程序片断3
import osimport timeimport reimport urllib3import urllibfrom bs4 import BeautifulSoupfrom PIL import Imageimport hashlibheaders = {"User-Agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7...原创 2019-03-16 22:49:36 · 182 阅读 · 0 评论