自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

编程圈子-谢厂节的博客

编程入门知识

  • 博客(1198)
  • 资源 (11)
  • 收藏
  • 关注

原创 中颖51芯片学习7. ADC模数转换

ADC(Analog-to-Digital Converter)是一种将模拟信号转换为数字信号的电路或模块,以将来自外部传感器或其他模拟设备的模拟电压信号转换为处理器能处理的数字信号。ADC转换中,采样率SPS(Samples Per Second),即每秒样本数用来衡量采样的速度,它的单位通常用Hz表示, 即 1SPS=1Hz。分辨率:具有12位分辨率,能够将模拟信号转换为数字数据,并提供高精度的测量。参考电压:可选择使用外部VREF或芯片内部的VDD作为基准电压。模拟输入通道。

2024-04-19 15:29:16 349

原创 中颖51芯片学习6. EUART接口通讯

SH79F9476 有3个自带波特率发生器的EUART0/1/2(波特率发生器是一个15位向上计数器)。SH79F9476的EUART有四种工作方式,3个EUART功能基本一样。下面主要介绍 EUART0。方式0。

2024-04-11 19:00:37 567 1

原创 51单片机学习笔记17 4线双极性马达和SG90舵机

四线双极性电机通常用于驱动一些需要高效率和可靠性的应用。它的定子通常包含固定的线圈,而转子则是可以旋转的部分,通常是通过磁场与定子相互作用来产生转动力。TC1508S是一款双通道直流电机驱动集成电路,主要用于驱动中小型直流电机或四线双极性步进电机。这款芯片内置了功率MOSFET全桥驱动电路,可以方便地实现电机的正转、反转、停止以及刹车控制。我手头的步进电机额定电压要6-24V,TC1508S无法直接驱动。已网购 TMI8549 芯片,到手实验成功后补充驱动电路。

2024-04-11 15:23:31 945

原创 中颖51芯片学习5. 类EEPROM操作

代码保护模式是一种微控制器提供的安全功能,旨在保护程序代码不受未经授权的访问和修改。中颖 SH79F9476 提供了四种代码保护模式,分别是代码保护模式0、代码保护模式1、代码保护模式2和代码保护模式3。Flash编程器在ICP模式设置相应的保护位,以进入所需的保护模式。SSP模式不支持代码保护控制模式编程。地址: F7H Bank0符号:XPAGE对于程序存储区,一个扇区为 512 字节。寄存器定义如下。

2024-04-10 15:58:05 788

原创 51单片机学习笔记16 小型直流电机和五线四相电机控制

本文使用的小型直流电机常用于玩具,两根导线,改变电流强度时改变转速、改变电流方向时改变转向。

2024-04-10 11:48:18 636

原创 中颖51芯片学习4. 可编程计数器阵列PCA0

PCA(Programmable Counter Array)是一种可编程计数器阵列,是常见于一些8位和16位微控制器中的重要外设之一,包括中颖C51单片机。PCA0的功能包括计时器和捕获/比较功能,它能够执行多种定时和控制任务。PCA可以作为一个多功能的定时器,能够产生精确的定时脉冲,用于计时、延时等应用。它可以以不同的时钟源(如系统时钟、外部时钟等)来进行计数,并且支持不同的计数模式(例如定时器、捕获/比较等)。

2024-04-09 15:00:50 881

原创 中颖51芯片学习3. 定时器

SH79F9476芯片具有多个定时器模块,包括定时器/计数器、PWM(脉冲宽度调制)定时器等,定时器可以配置为在计时达到特定值时触发中断,以便处理紧急事件或执行特定的任务。T2端口可以编程输出50%的占空比时钟周期。清C/T2位和置T2OE位,使定时器2作为时钟发生器。TR2位启动和中止定时器。

2024-04-08 14:47:21 971

原创 中颖51芯片学习2. IO端口操作

Pin2的值跟随Pin0变化,Pin0接地时,Pin2输出低电平;Pin0接高电平时,Pin2输出高电平。寄存器PxCRy用来控制端口的输入、输出功能,其中x的取值范围是0~3, y的取值是0~7。P0.0~P0.3口可输出 1/2VDD 电压,由P0V0单独控制。其中:P35S~P30S 值定义与P07S、P06S 值定义相同。控制P0口输入电平逻辑控制,即控制输入时的高、低电平阈值。示例,让P0_0输出0.2V电压。控制功能与PIMS0类似。

2024-04-07 10:38:40 870

原创 51单片机学习笔记15 LCD12864(带字库)显示屏使用

LCD12864是一种128x64像素的液晶显示屏,常用于电子设备中作为显示器。它通常采用ST7920或者类似的控制器,可以通过串行或并行接口与微控制器或其他设备通信。LCD12864显示屏可以显示单色图像和文本,通常用于嵌入式系统、电子仪器、3D打印机等领域。管脚编号功能1VSS(地)2VDD(电源,5V)3V0(液晶对比度调节)4RS(寄存器选择,1:数据;2:命令寄存器)5R/W(读/写选择,1:读;2:写)6E(使能信号)7-14DB0-DB7(数据位)15。

2024-04-06 15:59:32 900

原创 中颖51芯片学习1. 系统时钟及IO口输出操作

SH79F9476,是一款基于8051指令流水线结构的8位单片机,保留了标准8051芯片的大部分特性,如256字节RAM、3路UART、外部中断0、2、3;另外SH79F9476还集成了4096字节RAM、64K程序存储Flash块。

2024-04-03 15:01:47 719

原创 51单片机学习笔记14 LCD1602显示屏使用

LCD1602是一种常用的字符型液晶显示模块,它由16列、2行的字符组成,每个字符由5x8像素的点阵构成。外观图:显示能力:LCD1602可以同时显示两行文字,每行最多可显示16个字符。低功耗:LCD1602采用液晶显示技术,具有较低的功耗。易于控制:LCD1602可以通过并行或串行接口与微控制器进行通信,控制简单、灵活。通常使用的控制芯片为HD44780,它提供了一套简单易用的指令集,用于控制LCD的显示内容、光标位置等。背光显示:LCD1602通常配有背光,可以在暗环境中提供良好的可视性。

2024-04-03 09:10:48 1210

原创 51单片机学习笔记13 红外遥控接收

NEC 编码格式支持多种不同的功能和操作,因此命令码可以涵盖各种各样的控制命令。类似于地址码,命令码也可以包含一个校验位,通常是命令码的反码。一个完整的 NEC 编码帧通常由连续的脉冲序列组成,包括引导脉冲、地址码、反码、命令码、命令反码和结束码等部分。通过地址码,接收器能够准确地识别要控制的设备或设备组,从而确保遥控器发送的命令能够正确地被接收并执行。RAW 码不使用特定的编码格式,而是直接记录脉冲的时间间隔,可以通过分析脉冲的时间来解码。命令码的长度通常是 8 位二进制数,与地址码相同。

2024-04-02 16:37:12 873

原创 51单片机学习笔记12 SPI接口 使用1302时钟

DS1302是一款由Maxim Integrated公司生产的实时时钟(RTC)芯片。RTC芯片用于计算机和其他电子设备中的时间和日期的集成电路,通常被用于电子时钟、计时器、温度记录器等应用中。实时时钟功能:提供年、月、日、时、分、秒等时间数据。串行接口:通过串行接口(如SPI)与微控制器进行通信。低功耗设计:具有低功耗特性,在电池供电情况下能够长时间稳定运行。内置晶体振荡器:集成了晶体振荡器,不需要外部晶振。电池备份:支持电池备份以保持时钟运行,即使主电源断电时也能保持时间数据。温度补偿。

2024-04-01 10:20:53 915

原创 51单片机学习笔记11 使用DS18B20温度传感器

DS18B20是一种具有高精度、数字输出和单总线通信数字温度传感器,可以提供9位温度读数。1-Wire协议是一种串行通信协议,用于在单一数据线上进行通信和供电。它由独特的通信方式和协议约定组成,广泛应用于各种数字设备和传感器之间的通信。

2024-03-28 09:56:24 1026

原创 51单片机学习笔记10 IIC通讯和EEPROM

IIC(也被称为I²C,是一种串行通信协议。它由Philips Semiconductor(现在的NXP Semiconductors)在1980年代初期开发,用于在集成电路(IC)之间进行低速、短距离的通信。I²C协议广泛应用于嵌入式系统中,尤其是在微控制器与各种外围设备之间的通信,如传感器、EEPROM、RTC(实时时钟)等。

2024-03-22 14:30:00 1102

原创 51单片机学习笔记9 串口通讯

51单片机的串口通信是通过内置的串行通信口(UART)实现的,常用于与外部设备进行数据交换。串口通信是一种基于串行传输的数据通信方式,通过一根数据线和一根时钟线(或不需要时钟线)进行数据传输。数据按照一定的规则和时序被发送和接收。TXD:接P3.1引脚RXD:接P3.0引脚SBUF 是缓冲区,分为发送缓冲区和接收缓冲区。TH1和TL1是定时器1的功能,需要工作在方式2(自动重载模式),用来设置波特率;

2024-03-21 19:17:29 803

原创 51单片机学习笔记8 中断系统及定时器

TMOD 寄存器各位的功能分成2组,高4位、低4位,分别控制定时器1、定时器0的工作模式。位7:GATE1(定时器1门控位):当 GATE1 为 1 时,定时器1的计数/定时工作由外部引脚控制。当 GATE1 为 0 时,定时器1的计数/定时工作受到内部控制。位6:C/T1(定时器1计数/定时选择位):当 C/T1 为 0 时,定时器1为定时器模式;当 C/T1 为 1 时,定时器1为计数器模式。位5-4:M11 和 M10(定时器1工作模式位)

2024-03-20 15:09:16 1162

原创 51单片机学习笔记7 串转并操作方法

由于单片机的I/O资源有限,在进行一些外围设备通讯时,如LED点阵、数码管操作,需要大量的I/O资源,为了减少单片机的资源占用,可以使用串转并的操作,通过引入专用芯片,用较少的单片机I/O引脚,控制大量的外围I/O引脚设备。在串转并操作中,串行数据首先经过一个串行转并行转换器,该转换器将串行数据拆分为多个并行数据。这些并行数据同时传输到并行数据接收器,每个并行数据接收器负责接收并处理其中的一部分数据。最后,这些处理后的并行数据再通过并行数据输出端口一起输出,形成并行数据流。

2024-03-19 14:29:36 957

原创 51单片机学习笔记6 数码管显示

74HC245是一款常用的8位双向电平转换器,也被称为总线驱动器。高速:74HC245具有较高的数据传输速率,适用于高速数字系统。低功耗:它的静态功耗较低,适用于功耗要求较低的应用。低电平输出:74HC245的输出端口可以提供低电平输出,适用于5V和3.3V系统之间的电平转换。D74HC138是一种八线三至八译码器,也被称为3-8译码器。它通常用于数字系统中的地址译码、片选信号生成等应用,用于将三位二进制地址转换为八个输出端口中的一个低电平输出。它具有快速响应、低功耗、高阻抗输入端口等特点。

2024-03-18 14:13:07 1089

原创 STM32 学习12 输入捕获与触摸按键

输入捕获(Input Capture)是一种用于测量外部信号脉冲宽度或者频率的技术,常用于测量传感器输出、编码器信号、脉冲调制信号等。输入捕获通常通过定时器模块来实现输入捕获功能。

2024-03-14 09:55:59 876

原创 STM32 学习11 独立看门狗与窗口看门狗

看门狗(WatchDog Timer),是一种电子或软件定时器,采用类似心跳的机制,监测单片机是否处于正常工作状态。在正常工作状态,单片机会定期重置看门狗,当单片机发生异常时,看门狗无法正常重置,计时器会产生超时信号。STM32F10x 内置两个看门狗,分别是独立看门狗(IWDG) 和窗口看门狗 (WWDG)。

2024-03-11 09:40:20 830

原创 STM32 学习10 PWM输出

PWM的全称是脉冲宽度调制(Pulse Width Modulation),是一种控制模拟信号的方法。它通过改变脉冲的宽度来控制模拟信号的平均值。STM32F1除了基本定时器TIM6和TIM7,其它定时器都可以产生PWM输出。TIM1和TIM8:均可同时产生7路PWM输出;其它通用定时器:均可同时产生4路PWM输出。在STM32微控制器中,生成PWM信号通常涉及到自动重装载寄存器(ARR)和比较寄存器(CCR)两个重要的寄存器。

2024-03-08 12:11:45 979

原创 STM32 学习9 中断、外部中断及定时器中断

中断是一种计算机编程中的技术,用于在程序执行期间暂停当前任务,转而执行预定义的中断服务程序(ISR),处理特定的事件或信号。中断机制允许系统对实时事件做出及时响应,而不必用循环去等待特定事件的发生。STM32系列微控制器提供了丰富的中断支持,包括但不限于外部中断、定时器中断、串口中断和DMA中断等。2个 基本定时器(TIM6和TIM7):用于生成简单的定时中断,适用于一些简单的定时任务。4个 通用定时器(TIM2至TIM5):具有更多的功能和配置选项,可以实现更复杂的定时任务和PWM输出等功能。

2024-03-07 15:02:18 1121

原创 STM32 学习8 USART串口通讯与printf重定向

STM32 F103ZET6包含多个UART、USART串口。同步和异步通信全双工通信支持硬件和软件流控制机制异步通信全双工通信无需外部时钟信号。

2024-03-06 12:16:32 1180

原创 STM32学习7 按键扫描

本实验使用普中STM32-F1开发板,芯片型号是STM32F103ZET6。其按键电路如下:对应的芯片引脚:从电路可以看出,键盘的 KEY_UP 键如果接通,会连接高电平。KEY_UP:GPIOA GPIO_Pin0 引脚KEY_LEFT:GPIOE GPIO_Pin2 引脚KEY_RIGHT:GPIOE_GPIO_Pin4 引脚KEY_DOWN:GPIOE_GPIO_Pin3 引脚// 引脚和端口// 读取引脚状态。

2024-03-03 12:49:08 1010

原创 STM32学习6 SysTick系统定时器

SysTick 是 Cortex-M 内核中的一个系统定时器,经常被用作系统中断控制器的基础,或者作为操作系统的时间片轮转机制的基准。SysTick 会定时产生中断请求,当计数器达到设定值时,SysTick会触发一个SysTick定时器中断,向NVIC发出中断请求。当 SysTick 定时器的计数器值减为零时,会触发一个 SysTick 中断请求,向 NVIC 发送中断请求信号。用于配置 SysTick 定时器的工作模式、使能定时器和中断,并提供定时器当前状态的查询功能。

2024-03-02 20:34:36 920

原创 STM32学习5 时钟系统

系统时钟是STM32微控制器中最重要的部分之一,它负责提供时序信号以驱动处理器核心、外设和其他系统模块的运行。系统时钟通常由多个时钟源、时钟分频器和时钟树组成,这些组件共同构成了系统时钟的组成和层级结构。/*** @brief 配置外部高速时钟(HSE)和 PLL* @param div: PLL输入时钟分频系数* pllm: PLL倍频系数*/// 复位 RCC 寄存器到默认值// 使能外部高速时钟(HSE)// 等待外部时钟稳定// 配置 AHB 时钟分频系数// AHB 不分频。

2024-02-28 14:32:28 961

原创 STM32学习4 位带操作

STM32微控制器中的位带操作(Bit-Banding)是一种特殊的内存映射技术,它允许将特定的位(Bit)与特定的内存地址绑定,从而实现对单个位的原子级操作。位带操作在STM32中通常用于对GPIO端口、寄存器以及其他外设的单个位进行读写操作,提高了代码的可读性和效率。

2024-02-27 13:35:06 876

原创 STM32学习3 寄存器映射和GPIO寄存器编程

本文通过介绍GPIO寄存器,介绍寄存器编程方法,实现与前一章库函数编程类似的控制功能。

2024-02-27 09:29:11 901

原创 STM32 学习2 库函数控制GPIO输出

GPIO是STM32微控制器上的一组引脚,可配置为输入或输出模式,用于与外部设备进行数字信号交换。每个GPIO引脚都有一个唯一的编号,通常称为引脚名称或引脚号码。STM32系列微控制器通常具有多个GPIO引脚,数量取决于具体型号。GPIO模块是STM32微控制器中非常重要的功能之一,它允许微控制器与外部设备进行数字信号交换。通过正确配置和使用GPIO,可以实现各种应用,包括传感器接口、控制输出设备等。

2024-02-18 15:46:24 1098

原创 Three.JS教程5 threejs中的材质

在Three.js中,材质是应用于几何体(Geometry)的外观和纹理的规则。它们决定了对象在场景中如何反射光线、显示颜色、反射环境等。Three.js提供了各种类型的材质,每种都有不同的特性和用途,使开发人员能够根据需求创建出各种视觉效果。官方文档地址本文源码地码lesson5。

2024-02-16 16:41:19 1270

原创 Linux 内核学习1. 编译并启动一个最小化系统

Linux内核是操作系统的核心组件,负责管理硬件资源、提供系统调用接口以及协调用户空间和硬件之间的交互。内核位于操作系统的最底层,直接与硬件交互,为上层提供服务。Linux内核是开放源代码的,符合 GPL (General Public Licese)开源协议。内核网址:https://kernel.org/截止本文写作时,当前内核主线最新版本是6.8-rc1。

2024-01-31 22:44:34 1059

原创 Vue.js 学习14 集成H265web.js播放器实现webpack自动化构建

H265web.js 是一个用于在 Web 浏览器中播放 H.265 视频的 JavaScript 播放器。它支持在浏览器中直接解码 H.265 编码的视频流,提供了高效的视频播放体验。在 Element UI 项目中集成 H265web.js 可以让我们轻松实现 H.265 视频的播放功能。H265web.js 开源地址:文档地址:目前vue里集成H265web.js 还有一定的复杂度,本文作以详细介绍。

2024-01-31 14:11:31 1482

原创 Linux学习20 使用FRP进行内网穿透实现远程访问

是一款由fatedier开发的高性能的反向代理工具,用于穿透防火墙、NAT等网络障碍,将内网服务映射到公网上。FRP支持TCP、UDP、HTTP等多种协议,操作简单,适用于各种场景。开源地址: https://github.com/fatedier/frp。

2024-01-30 14:29:15 1003

原创 Three.JS教程4 threejs中的辅助类

Three.js 提供了一些辅助类(Helpers)以帮助我们更容易地调试、可视化场景中的元素。ArrowHelepr:创建箭头辅助器;AxisHelper: 创建坐标轴辅助器;BoxHelper: 创建包围盒辅助器;Box3Helper:创建可视化Box3的辅助器;CameraHelper:用于创建相机的辅助器;DirectionalLightHelper:创建方向光源;GridHelper:创建网格辅助器;PolarGridHelper:极坐标网格辅助器;

2024-01-22 11:05:41 910

原创 Three.JS教程3 threejs中内置的更多几何体

胶囊几何体是一种有球形顶端和圆柱形部分组合的几何体。radiusTop: 胶囊体顶部的半径;radiusBottom: 胶囊体底部的半径;height: 胶囊体的总高度;radialSegments(径向分段数): 胶囊体周围的圆柱部分的分段数;heightSegments(高度分段数): 胶囊体的高度上的分段数;cappedTop(是否有顶部): 一个布尔值,指示是否有胶囊体的顶部;cappedBottom(是否有底部): 一个布尔值,指示是否有胶囊体的底部;

2024-01-19 13:41:21 897

原创 Three.JS教程2 几何体的创建与使用

顶点的位置是一个浮点数数组,其中每三个元素表示一个点的x、y和z坐标。

2024-01-18 10:47:10 825

原创 Three.JS教程1 环境搭建、场景与相机

Three.js 是一款基于JavaScript的开源3D图形库,它简化了在Web上创建复杂的3D场景和动画的过程。Three.js 由Ricardo Cabello(也称为mr.doob)于2010年创建,最初是为了填补WebGL技术在那个时候的不足而设计的。随着WebGL的普及和浏览器性能的提升,Three.js逐渐成为Web上3D图形编程的事实标准之一。官网地址: https://threejs.org/

2024-01-17 09:17:17 1092

原创 Nodejs 入门8 NeDB 轻量级的Node.js 数据库

常用的sqlite轻量级数据库,nodejs在windows环境下安装配置有时候会比较麻烦,很难顺利安装。Nedb(Node Embedded Database)在一些情况下可以替代sqlite,特别适用于小型项目和快速原型开发。本文将介绍Nedb的基本概念、特性和使用方法,以帮助大家更好地了解和利用这个便捷的工具。github官网Nedb是一个基于Node.js的嵌入式数据库,它在内存中存储数据,同时也支持将数据持久化到磁盘。

2024-01-12 10:11:13 1295

原创 Linux学习19 在Ubuntu命令行下使用新硬盘

文件配置的挂载信息会被系统持久化保存,这意味着它们会在系统重启后继续有效。这有助于确保在系统重新启动后,所有必要的文件系统都会被正确挂载。这个文件定义了系统启动时哪些设备(如硬盘分区、光盘、网络文件系统等)应该被挂载到哪些挂载点,并指定了挂载时使用的选项。文件定义了系统在启动时应该自动挂载的所有设备和分区。这确保了在系统启动时,特定设备会被正确挂载到指定的挂载点上。当然,选择其它目录作为挂载点也是可以的。运行以下命令将硬盘挂载到刚创建的挂载点上(假设硬盘为。列出的硬盘信息里,找到要挂载的硬盘。

2024-01-09 16:22:05 873

adb驱动解决重启问题

adb.exe 新版本手机连接adb可能会出现反复重启的现象,该版本可以解决此问题。解压后把目录加入到path即可。

2018-06-28

sbt-launch

在windows下的启动包

2017-01-23

倒计时功能的PPT

具有倒计时功能的PPT

2016-11-24

Psycopy For win64

Python连接PostgreSQL时要安装的库。Windows 64Bit操作系统使用。

2016-07-26

tcpdump for android arm

适合android使用的tcpdump抓包工具,使用方法http://blog.csdn.net/xundh/article/details/46010707

2016-01-07

php redis驱动for win

php 下的 redis驱动,64/32bit windows,配合博客: http://blog.csdn.net/xundh/article/details/42437091#5752006

2015-12-29

C#操作JSON LitJSON

C#操作JSON LitJSON,适用Framework的版本比较广。操作方法简便。

2015-09-16

msnodelsql

nodejs使用sqlserver数据库的包

2015-09-16

mysql-connector-net-6.3.9.rar

mysql与c#的连接库6.4版本后可能有bug,连接数据库可能会提示:out of sync with server。这个老版本可以正常使用。

2015-06-13

Sqlite3+VB

非原创,感谢原作者。VB下使用Sqlite3,网上代码很多,但要筛选使用。这个测试可用。因为博客没法上传文件,所以上传在这里。

2015-02-06

使用html5实现的多边形展示百分比

使用html5实现的多边形展示数字百分比,以替换柱状图的展示方式。

2014-10-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除