1. 哈希表的基本概念
哈希表(Hash Table),也叫散列表,是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过把键值通过一个函数的计算,映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数叫做哈希函数(Hash Function),存放记录的数组叫做哈希表。
2025年06月20日
哈希表(Hash Table),也叫散列表,是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过把键值通过一个函数的计算,映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数叫做哈希函数(Hash Function),存放记录的数组叫做哈希表。
2025年06月20日
2025年06月20日
随着技术的发展,电子产品越来越多,方便了我们的日常生活,大多数电子产品上都有单片机,而单片机是通过执行软件逻辑来实现功能的。而单片机编程最合适的编程语言是汇编语言,但是最常用、最普及的却是C语言。单片机为什么要用C语言来编程?
C语言最早是在1972年的时候在DEC PDP-11计算机上首次跑起来的,它的设计者是美国人丹尼斯·麦卡利斯泰尔·里奇,他在贝尔实验室为UNIX操作系统设计的。后来他和同事共同编写了C语言编程标准--K&R。没想到日后C语言会成为广泛的编程语言并风靡全球。而之所以叫做C语言,是因为它是在B语言的基础上而设计出来的。
2025年06月20日
从电子产品硬件设计到单片机软件开发,到PC端软件开发,物联网平台建设,这30年,我做了很多。
已经有一个分布式物联网平台在运行中。但平台和产品的商业化不是一件简单的事情。
因为这是一个分布式物联网平台,任何人都可以拿到平台代码并在自己的服务器上运行,然后参与到物联网系统中来,并为物联网设备提供通讯服务,从而收取服务费。
为了让系统尽快被认可,并让小伙伴们积极参与到分布式物联网平台的建设中来,我准备花1个月时间,做一个“
2025年06月20日
单片机应用系统的设计与开发是一个综合性的工程。
2025年06月20日
记得2006年在凌阳科技(sunplus)工作的时候,凌阳科技开发了自己的编译器/集成开发环境(unsp IDE),那个IDE除了有keil那样的编辑器、编译器、链接器、调试器、下载器等等嵌入式开发必须的功能外,还有一个帅到爆的功能,就是模拟器simulator,他能直接模拟硬件单片机,不需要硬件单片机,就能在电脑上模拟出代码实际在单片机上运行的效果,包括GPIO、SPI、I2C、UART、按键键盘、LCD显示,Audio播放,NVRAM存储器... 等等,简直太有用了,再也不需要等半天把程序烧录到单片机,通过仿真器调试,发现代码有问题,就改一下代码,编译完了再慢慢烧录下载到单片机,效率太低了... 有了这个单片机模拟器,就跟开发PC软件一样,所见即所得....
2025年06月20日
回想起我初学单片机到现在已经有六年了。学习期间使用了51单片机、飞思卡尔单片机、STM16、STM32等单片机。每次接触新的单片机我首先会熟悉它的基本开发,然后再通过项目的实现去深入的了解它。
2025年06月20日
关注一下,更多精彩等着你!
这是新手的第一次尝试,是老师傅的一次回望当年。
准备阶段,我们尽量让第一次测试完整,可操作。由于准备比较多,讲得尽可能详细,所以分为两篇,上篇是软件测试,下篇是硬件测试。
所有材料:
1,安装软件的电脑,至少安装了keil和ISP,keil用于编辑程序,ISP用于把程序下载到单片机中。没有这两个,我们即使首次测试成功,接下来的学习也会很艰难。
2,可以上电的最小系统板,已安装单片机。上电是基本的,单片机也是基本的,没有单片机,程序就没地方存,没有电,什么也干不了。
2025年06月20日
在单片机系统里,按键是常见的输入设备,在本文将介绍几种按键硬件、软件设计方面的技巧。一般的在按键的设计上,一般有四种方案。
一是 GPIO口直接检测单个按键,如图 1.1 所示;
二是按键较多则使用矩阵键盘,如图 1.2 所示;
三是将按键接到外部中断引脚上,利用按键按下产生的边沿信号进行按键检测,如图 1.3 所示;
四是利用单片机的 ADC,在不同的按键按下后,能够使得 ADC 接口上的电压不同,根据电压的不同,则可以识别按键,如图 1.4 所示。
2025年06月20日
单片机软件常规程序架构是指在单片机软件开发中使用的一种常规程序设计模式。它通常由三个主要模块组成:初始化模块、主循环模块和中断服务模块。
1. 初始化模块:在程序运行之前,需要初始化各种硬件和软件来确保它们能够正常工作。初始化模块主要用于这个目的,其中包括将所有端口和设备置于正确的状态、设置各种计时器和中断等。
2. 主循环模块:在初始化完成之后,单片机的程序将永久地进入主循环,等待外部输入和处理各种事件。主循环模块通常包括以下几个步骤:读取输入数据、处理数据、输出结果等。