单片机12864带字库汇编使用教程

2023-05-16

一丶引脚说明
Lcd12864(带字库版本,ST7920为主芯片驱动)

(正面)

 

(反面)
由于是带字库版本,与不带字库版本有出入,其部分引脚有不同
二丶接口时序
Mpu从模块写入资料
(时序图很重要,能够保证命令正确写入ST7920芯片,让12864屏幕正常使用)
 

  

这里我们采用并行模式,PSB,RS全部置高(PSB,RS所对应的引脚置高电平)
( P2.6 RS 对应口, P2.5 RW P2.7 E D0-D7 接在 P0 串口, PSB P3.2,RST P3.3  vcc 5v  下面统一采取这种接法)
写入指令:

CLR P2.7(使能信号先置低电平)

CLR P2.6(RS低电平)

CLR P2.5(RW低电平)

LCALL DELAY1(延时一段时间 对应时序图TAS)

CLR P2.7(使使能信号置低电平)

SETB P2.7(使能信号置换高电平)

MOV P0,#08H(输入08#对应指令)

LCALL DELAY1(延时一段时间,对应TC)

CLR P2.7

LCALL DELAY1

SETB P2.7

LCALL DELAY(此处延时大于60ms相当于读忙了)

这个程序段可以看作一个指令

写入数据:

同上     CLR P2.6,改为SETB P2.6即可,其余相同

其中延时时间如上图,只要超过最小值即可,最好不要过长了。

 

三丶对12864的所有操作概括起来有4种

1)、读忙状态(同时读出指针地址内容),初始化之后每次对12864的读写均要进行忙检测。(我每次写一次完整指令都延时一段时间,相当于读忙了,下面就不再赘述)

2)、写命令:所有的命令可以查看指令表,后续讲解指令的详细用法。写地址也是写指令。

3)、写数据:操作对象有DDRAM、CGRAM、GDRAM。

4)、读数据:操作对象也是DDRAM、CGRAM、GDRAM。

忙标志:BF
BF标志提供内部工作情况。BF=1表示模块在内部操作,此时模块不接受外部指令和数据。BF=0时,模块为准备状态,随时可接受外部指令和数据。
利用STATUS READ指令,可以将BF读到DB7总线,从检验模块之工作状态。

那我们要如何在12864上面显示图像或者字符呢?

下面就来介绍一下DDRAM

上图所对应的四个区是DDRAM所对应的在ST7920上面的地址,其中能够显示的只有壹贰区,那么我们只需要把字符所对应的数据写进DDRAM中,那么就可以让12864显示出我们想要的字符。

其中80H到87H为第一行

90H到97H为第二行(上半屏)

88H到8FH为第三行

98H到9FH 为第四行(下半屏)

下面我们来试着编写一下程序

(这几个步骤很重要,学会了步骤就学会了12864的使用)

*网上有带字库12864详细指令集,这里我就不打出来了,注意,我编写的输入指令的指令码是只对应DB0到DB7的,和下面绿框那种一样是没有RW,RS,E位的,那些位我在编指令的时候就设定好了。

(1)功能设定

 
(2)清屏指令


 
(3)进入设定点
 
(4)显示状态开关设置
   
上面为初始化程序
( 绿色框代表指令码,可以输入二进制也可以输入 16 进制,只要保证 p0 口电平信号相对应就行了)
 
  • 设置DDRAM地址
 

对应指令1000 0000也就是给p0输入#80H

DDRAM从80H开始输入指令,12864的DDRAM横向地址会自动读取表中的数据,每输入两个16位的数据如#41H,#41H,地址会自动从80H跳到81H以此类推,网上有详细的运作方式,可以上网查阅。

 

 

上图很明显,我输入了三个#41H进80H中,12864就自动将第三个41#也就是大写A写进81H中,这里提一下,带字库DDRAM12864一个地址可以写一个汉字两个字母(厂家规定的,无法修改)

 
  • 输入DDRAM地址
 

这里可以用查表的方式,一直往DDRAM写入数据,但是写进去的数据是这样的,先填满第一行,再填满第三行,再填满第二行,再填满第四行

,那我这里就采用查不同表的方式,设DDRAM起始地址为80H的时候只查16个数据,再设90H再查16个数据,以此类推。

 

下面我给仿真图和指令

(注意,这里仿真要带字库的12864,不带字库的不能成功仿真,带字库的模型上网搜)

   

我设置的引脚和开发板的设置引脚一致,直接插上去使用了,大家使用的时候可以看看开发板的原理图,一般都是一样的,不行就改引脚

 

那普通的字符可以了,那怎么画图呢,广告的需求肯定不能只有字符,还要有图案,那怎么定制呢。下面就来介绍另一个RAM,CGRAM,也叫绘图RAM。

 

 

这些都是点阵,绘图RAM就是给这些点阵置1或置0,可以看到其实它本来是32行×256列的,但是分成了上下两屏显示,每个点对应了屏幕上的一个点。要使用绘图功能需要开启扩展指令。然后写地址,再读写数据。

 

这幅图就是CDRAM对应的地址,其实也是12864实际的样子,水平位址对应着DDRAM的80H到8FH,一共16格,每8格对应一个半屏,共两个半屏。一格一行一共对应了16位的二进制数字那么半个屏幕就是16*8(共8格,一格16列)*32(32行),一个半屏32行,一个整屏就是16*8*32*2=128*64所以称之为12864屏幕(很重要,一定要理解了)

 

那看到上图bit0和bit15,可以知道,一个地址是先从高位读到低位置,看起来很麻烦。但是后面取字模软件可以帮你修改,那我这里向CGRAM输入还是像DDRAM一样,当然,CGRAM和DDRAM的地址是一样的,一旦读够16个二进制数字,也就是两个16进制数,也就是两个字节,就会自动加一,DDRAM从80H到81H,那CGRAM对应的地址也是一样下面会提到。这是x坐标,但是y坐标不会,y坐标要你输入了16个数值后自己修改,也就是写完一行后要自己改。

(我这里写得不太清楚,LCD12864点阵型液晶显示器总结 - 吃不了就兜着走 可以看一下这个作者写的他写的很详细)

 

  GDRAM的读写:

  首先说明对GDRAM的操作基本单位是一个字,也就是2个字节,就是说读写GDRAM时一次最少写2个字节,一次最少读2个字节。

 

  写数据:先开启扩展指令集(0x36,然后送地址,这里的地址与DDRAM中的略有不同,DDRAM中的地址只有一个,那就是字地址。而GDRAM中的 地址有2个,分别是字地址(列地址/水平地址X)和位地址(行地址/垂直地址Y),上图中的垂直地址就是00H~31H,水平地址就是00H~15H,写 地址时先写垂直地址(行地址)再写水平地址(列地址),也就是连续写入两个地址,然后再连续写入2个字节的数据。这里列举个写地址的例子:写GDRAM地址指令是0x80+地址。被加上的地址就是上面列举的XY,假设我们要写 第一行的2个字节,那么写入地址就是0x00H(写行地址)然后写0x80H(列地址),之后才连续写入2个字节的数据(先高字节后低字节)。

下面说说指令,其实和DDRAM基本一致,就是写写入CGRAM指令要先写x坐标,再写y坐标,其余步骤基本一样,但是查表要注意了,因为我编写的程序RA寄存器只能读到256位置,那我要分成4个表才能读完整个屏

 

下面给出指令和仿真。

 

下面拉屏和闪烁我就简要说一下思路

 

闪烁我是通过不停地睡眠唤醒来实现,这里睡眠指令要开拓展指令,然后写一个循环和跳出循环的指令,通过两个按钮或者一个开关实现,也可以通过反白来实现,其实会写步骤就完成大部分了,剩余的其实都是不断地调试和检查错误。

 

拉屏(仿真跑不了卷屏)

功能:SR=1: AC5~AC0 为垂直卷动地址,SR=0:。

那这里要说一下了,怎么实现拉屏呢。其实12864里自带了一个指令叫做卷动地址设置,它规定了只会向上滚动,而因为一共是有64列的但是上面CGRAM为什么只有32行呢,那是因为其中

A0到A7对应第一个屏中实际的第三行,其实它们也是可以输入数据的,只是没使用卷动指令时无法看到,那我假设

 

设置拉屏的行数为16吧,那80H就到了原来的B0哪里,一整行都替换了,然后A0就到90H一行,90H就到80H,其实就是一行推着整个半屏都在运动,但是12864的一行实际上是80H到8FH,上下半屏都在动,但不会相互影响

 

实际的一行:

80H


 

 

 

 

 

 

 

 

 

 

 

 

 

 

8FH

90H


 

 

 

 

 

 

 

 

 

 

 

 

 

 

9FH

A0H


 

 

 

 

 

 

 

 

 

 

 

 

 

 

AFH

B0H


 

 

 

 

 

 

 

 

 

 

 

 

 

 

BFH

所以一整个屏都会移动

 

 

(下图是半个屏,下面因为我已经实现全屏不方便改了,就只看上半屏吧)

 

那我要怎么实现全屏滚动呢,那么A0和B0行就开始有用了,那我只要将80H

对应的行,假设是CGRAM中的y  00H,x80H向上移,那我就设置成看起来从下半屏的最下面开始往上面升起,那就是Y 32H  X  88H,这一行。那这就开始有思路了,那我吧80H到88H的数据一起输入到A8到AFH区域不就行了吗,以此类推90H区到98H的就输入到B8到BF中,88H的输入到A0,98H的输入到B0就ok了。

下面试一下

成功了(此处要说明一下,CGRAM的y坐标是到0到63,是可以设置到A0和B0位置的,网上教程说的不清不楚的,花费了我很多精力,上面说y是0到31是因为不设置卷动看不见,所以不显示)

 

说明书心得:

说实话,这次我选的课题确实不算难度大的那一批了,网上也有很多的教程,但是由于要全部用汇编实现,工作量大了很多,我以为很快就能成功,没想到过程真的是千辛万苦,一个是仿真,可以说网上带字库的仿真几乎没有,那个Proteus的带字库模型还要自己在网上买,不断调试,不断测试才终于和开发板的一致。

不断在网上搜索教程,看了半天居然是不带字库的,差点晕倒在桌子上。后面终于在网上找到ST7920的说明书,一看和天书一样晦涩难懂,没办法,一个个不会的知识点慢慢学,实在不行就先看了1602的,这里很感谢知乎的北鸮他写的一篇文章超详细讲解,LCD1602电路与驱动 真的很详细清楚

然后是烧录的问题,烧录还好,因为网上的教程很详尽明白,没什么问题。然后就是不断地写程序,调仿真一直反复。然后不断地看网上作者们写的程序,吐槽一下,网上都是c语言的程序,汇编几乎没有,少有的几个甚至有语法错误,看的时候都有点头痛,那只好看着c语言思路来写汇编了,感谢网络上各位热心的作者,他们无偿地分享知识,而且教的很棒,真的非常感谢他们。

 

 



单片机源程序如下:
  1. AJMP MAIN
  2. TAB1:
  3. DB #41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H,#41H
  4. ,#41H,#41H
  5. TAB2: DB "元旦快乐大家好"
  6. //带字库的很方便,直接按这个格式输入汉字就行 一行7汉字,没有字的地方记得输入空格,空格占半个地址位
  7. TAB3: DB "我你不合格 ",07FH,05FH,06FH
  8. TAB4: DB "哦哦哦哦哦 ",07FH,05FH,06FH            
  9. //想改字符汉字直接改表就行,汉字要打在引号里面
  10. MAIN:
  11. SETB P3.2
  12. LCALL DELAY1
  13. CLR  P3.3
  14. LCALL DELAY1
  15. SETB P3.3
  16. LCALL DELAY1
  17. //初始化
  18. CLR P2.6
  19. CLR P2.5
  20. MOV P0,#30H
  21. LCALL DELAY1
  22. SETB P2.7
  23. LCALL DELAY1
  24. CLR P2.7
  25. LCALL DELAY1
  26. //写入#30H对应的指令
  27. CLR P2.7
  28. CLR P2.6
  29. LCALL DELAY1
  30. CLR P2.5
  31. MOV P0,#08H
  32. LCALL DELAY1
  33. SETB P2.7
  34. LCALL DELAY1
  35. CLR P2.7
  36. LCALL DELAY1
  37. //写入#08H的指令
  38. CLR P2.7
  39. CLR P2.6
  40. LCALL DELAY1
  41. CLR P2.5
  42. MOV P0,#0CH
  43. LCALL DELAY1
  44. SETB P2.7
  45. LCALL DELAY1
  46. CLR P2.7
  47. LCALL DELAY1
  48. //开屏
  49. CLR P2.7
  50. CLR P2.6
  51. LCALL DELAY1
  52. CLR P2.5
  53. MOV P0,#01H
  54. LCALL DELAY1
  55. SETB P2.7
  56. LCALL DELAY1
  57. CLR P2.7
  58. LCALL DELAY1
  59. //清屏指令
  60. CLR P2.7
  61. CLR P2.6
  62. ACALL DELAY1
  63. CLR P2.5
  64. MOV P0,#80H
  65. LCALL DELAY1
  66. SETB P2.7
  67. LCALL DELAY1
  68. CLR P2.7
  69. LCALL DELAY1
  70. //光标设置
  71. CLR P2.7
  72. CLR P2.6
  73. LCALL DELAY1
  74. CLR P2.5
  75. MOV P0,#80H
  76. LCALL DELAY1
  77. SETB P2.7
  78. LCALL DELAY1
  79. CLR P2.7
  80. LCALL DELAY1
  81. //设置DDRAM地址
  82. CLR P2.7
  83. SETB P2.6
  84. ACALL DELAY1
  85. CLR P2.5
  86. MOV R2,#15D
  87. MOV DPTR,#TAB1
  88. LOOP:MOV A,R0
  89. INC R0
  90. MOVC A,@A+DPTR
  91. SETB P2.6
  92. LCALL DELAY1
  93. CLR P2.5
  94. MOV P0,A
  95. SETB P2.7
  96. LCALL DELAY1
  97. CLR P2.7
  98. LCALL DELAY1
  99. DJNZ R2,LOOP
  100. //查表指令
  101. CLR P2.6
  102. ACALL DELAY1
  103. CLR P2.5
  104. MOV P0,#90H
  105. LCALL DELAY1
  106. SETB P2.7
  107. LCALL DELAY1
  108. CLR P2.7
  109. LCALL DELAY1
  110. //设置DDRAM地址
  111. MOV R2,#15D
  112. MOV DPTR,#TAB2
  113. MOV R0,#00H
  114. LOOP1:MOV A,R0
  115. INC R0
  116. MOVC A,@A+DPTR
  117. SETB P2.6
  118. LCALL DELAY1
  119. CLR P2.5
  120. MOV P0,A
  121. SETB P2.7
  122. LCALL DELAY1
  123. CLR P2.7
  124. LCALL DELAY1
  125. DJNZ R2,LOOP1
  126. //查表指令
  127. CLR P2.6
  128. ACALL DELAY1
  129. CLR P2.5
  130. MOV P0,#88H
  131. LCALL DELAY1
  132. SETB P2.7
  133. LCALL DELAY1
  134. CLR P2.7
  135. LCALL DELAY1
  136. //设置DDRAM地址
  137. MOV R2,#15D
  138. MOV DPTR,#TAB3
  139. MOV R0,#00H
  140. LOOP2:MOV A,R0
  141. INC R0
  142. MOVC A,@A+DPTR
  143. SETB P2.6
  144. LCALL DELAY1
  145. CLR P2.5
  146. MOV P0,A
  147. SETB P2.7
  148. LCALL DELAY1
  149. CLR P2.7
  150. LCALL DELAY1
  151. DJNZ R2,LOOP2
  152. //查表指令
  153. CLR P2.6
  154. ACALL DELAY1
  155. CLR P2.5
  156. MOV P0,#98H
  157. LCALL DELAY1
  158. SETB P2.7
  159. LCALL DELAY1
  160. CLR P2.7
  161. LCALL DELAY1
  162. //设置DDRAM地址
  163. MOV R2,#15D
  164. MOV DPTR,#TAB4
  165. MOV R0,#00H
  166. LOOP3:MOV A,R0
  167. INC R0
  168. MOVC A,@A+DPTR
  169. SETB P2.6
  170. LCALL DELAY1
  171. CLR P2.5
  172. MOV P0,A
  173. SETB P2.7
  174. LCALL DELAY1
  175. CLR P2.7
  176. LCALL DELAY1
  177. DJNZ R2,LOOP3
  178. //查表指令
  179.             
  180. DELAY1:
  181. MOV  R7,#100   ;单周期指令(1us)
  182. D1:  
  183.   MOV  R6,#100  ;单周期指令(1us)        
  184.   DJNZ R6,[        DISCUZ_CODE_3        ]nbsp;     ;双周期指令(2us)//该指令自身执行R6次        
  185.   DJNZ R7,D1     ;双周期指令(2us)//D1执行R7次  
  186. RET
  187. END
复制代码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单片机12864带字库汇编使用教程 的相关文章

  • 竞拍算法(Auction Algorithm)原理及工作过程分析

    这几天因一些项目工作 xff0c 需要对竞拍算法进行学习 但百度了大部分资料都未找到一篇文章对此算法有着较为深入的介绍 在一番努力之下 xff0c 终于找到了最初提出该算法的论文 xff0c 本文内容主要结合该论文对竞拍算法进行分析 竞拍算
  • PX4飞控学习与开发(七)-Pixhawk源码中的功能模块分析

    本篇博客主要介绍Firmware固件中各功能模块的基本结构 功能模块的编译 从上篇博客内容中的demo我们可以发现 xff0c 如果我们需要给Pixhawk模块新增一个功能模块 xff0c 一般的做法是新建一个文件夹 xff0c 所有这个功
  • XBee模块实现QGC与PX4飞控的组网通信连接

    本篇博客介绍如何利用XBee模块实现QGC地面站与飞控的通信 一 问题的提出 正如 上一篇博客 指出 xff0c PX4飞控原装数传模块 xff08 3DR Radio xff09 只能一对一通信 xff0c 并不能实现多机组网通信 xff
  • 基于PX4飞控的双机领航-跟踪的理论分析与实验验证

    双机领航 跟踪是最简单的无人机分布式控制 xff0c 是实现大规模集群分布式控制的基础 xff0c 本文主要记录对如何实现双机跟踪护航控制的思考以及验证实验 文章目录 一 理论基础二 仿真实验三 实飞实验 一 理论基础 无人机的位置控制模型
  • MATLAB常用命令及操作

    目录 0 MATLAB注释转到Ubuntu下乱码问题1 矩阵的相关操作2 取整函数3 MATLAB排序4 矩阵构造5 各种线条颜色及形状标记 0 MATLAB注释转到Ubuntu下乱码问题 将文件夹下所有m文件转为UTF 8 xff1a e
  • ubuntu里的QGC编译生成的文件到第二台电脑里运行

    QGC编译生成的文件如下 xff1a 将整个debug文件夹复制过去 xff0c 然后执行以下步骤 xff1a sudo chmod 43 x qgroundcontrol start sh 赋予权限 qgroundcontrol star
  • 2021 SLAM会议论文汇总

    目录 1 ICRA2021语义定位与建图视觉SLAM视觉里程计视觉三维重建视觉惯性里程计跟踪深度估计视觉定位激光雷达定位多传感器数据融合多传感器融合建图激光雷达SLAM激光雷达定位激光雷达建图激光里成计 amp 激光惯性里程计标题点云注册特
  • JavaScript 表单操作以及验证

    大家好 xff0c 我们今天分享一下JavaScript 操作验证表单 首先我们要知道 用JavaScript操作表单和操作DOM是类似的 xff0c 因为表单本身也是DOM树 HTML表单的输入控件 xff08 标签 xff09 主要有以
  • 使用OpenCV查找图像中矩形的位置

    import cv2 image 61 cv2 imread 39 1 jpg 39 blur 61 cv2 pyrMeanShiftFiltering image 11 21 gray 61 cv2 cvtColor blur cv2 C
  • 【GD32F310开发板试用】【001】FreeRTOS移植+“正点原子OLED任务线程”

    首发极术社区 如对兆易创新GD32F310 MCU感兴趣 xff0c 欢迎添加微信 aijishu2020 加入GD32技术讨论群 感谢极术社区提供的SG32F310G测试板 xff0c 尝试移植了一下FreeRTOS顺便点个OLED玩一下
  • apt-get的源

    使用 sudo vim etc apt sources list 修改镜像源 然后执行 sudo apt get update 更新 镜像源如下 xff0c 推荐使用国内源 xff0c 速度更快 镜像源内容转载自 https blog cs
  • Nginx+Keepalived实现站点高可用

    Nginx 43 Keepalived实现站点高可用 发表于 2015 05 18 更新于 2015 05 18 分类于 Linux xff0c Nginx 阅读次数 12301 公司内部 OA 系统要做线上高可用 xff0c 避免单点故障
  • 计算模型的FLOPs

    为了探究影响模型运行时间的变量 xff0c 之前运用了参数量做标准 参数量在TF框架下还是很容易计算的 TF框架下运用 tf span class token punctuation span keras span class token
  • stm32学习之路,方法很重要

    学习stm32已经一个月时间了 xff0c 可算是入门了 相信很多人跟我一样 xff0c 刚开始学的时候会遇到很多问题 xff0c 以及对stm32里面众多寄存器的恐惧 要利用stm32官方给的固件库开发 xff0c 少不了的还是要对寄存器
  • github的使用,及将默认分支main改为master

    一 xff0c 将默认分支main改为master github在2020 10 1宣布上的所有新库都将用中性词 main 命名 xff0c 取代原来的 master xff0c 如果我们通过git push u grigin master
  • module ‘cv2‘ has no attribute ‘aruco‘解决

    pip uninstall opencv python 先卸载 pip install opencv contrib python 使用这个可以解决 opencv contrib python属于加强版 xff0c 除了主模块 xff0c
  • Linux之4G模块串口通信

    在使用AT指令给4G模块发信息的时候 xff0c 我们需要借助到Linux中busybox的microcom工具 xff0c 该工具用来实现与串口之间的通信 xff0c 那怎么自己实现编程跟4G模块发信息 xff0c 以及接收信息把想要的信
  • Jetson Xavier NX配置全过程——系统与SDK烧录(一)

    Jetson Xavier NX配置全过程 系统与SDK烧录 xff08 一 xff09 Jetson Xavier NX配置全过程 安装jtop和OpenCV4 5 3 xff08 二 xff09 Jetson Xavier NX配置全过
  • Jetson Xavier NX配置全过程——D435i和T265驱动安装(三)

    Jetson Xavier NX配置全过程 系统与SDK烧录 xff08 一 xff09 Jetson Xavier NX配置全过程 安装OpenCV4 5 3 xff08 二 xff09 Jetson Xavier NX配置全过程 D43
  • Matlab 在线版 —— 科研人员的福音!无需下载安装,可计算可作图

    在线版 Matlab 科研人员的福音 可计算可作图 xff0c 无需下载安装 Matlab 软件 xff0c 也不需要配置环境 xff0c 直接在浏览器打开即可 xff0c 非常简单方便 不过和 Matlab 软件一样 xff0c 需要注册

随机推荐

  • 树莓派人工智能小车基本操作流程展示

    小车 把老师教我操作记录一下 添加后三行 xff1f gedit span class token operator span span class token operator span span class token punctuat
  • LeetCode刷题 Python实现——常用内置算法和数据结构

    目录 前言 常用内置算法和数据结构 注意 python 递归暴栈 栈溢出 python int 值范围 python 负数位运算的坑 python list 技巧 python dict 技巧 链表题目调试函数 内置库实现优先级队列的三种方
  • putty 报server unexpectedly closed network connection错误

    由于IP变了 xff0c 再用putty访问组内的服务器时 xff0c 竟然总是出错 xff0c 报server unexpectedly closed network connection错误 我公司的服务器是centos7 xff0c
  • Java中关于a=a++结果的解释

    目录 1 问题的提出 xff1a 2 如何对class文件进行反汇编 步骤 xff08 1 xff09 步骤 xff08 2 xff09 步骤 xff08 3 xff09 步骤 xff08 4 xff09 步骤 xff08 5 xff09
  • 无人机机架 无人机机架材料 无人机机架的尺寸计算 无人机机架结构图

    1 机架模块 机架是指多旋翼飞行器的机身架 xff0c 是整个飞行系统的飞行载体 机架就好像人体的骨骼 xff0c 选择好的机架可以增加你在飞行过程中的稳定性 xff0c 让你的飞机飞行更顺畅 机架最重要的一个参数就是其自身的重量 xff0
  • 看了这些书籍,进大厂就不难了是吗?

    嗯 是不是看了这些书籍 xff0c 进大厂就不难了吗 xff1f 哦 我只想说 xff1a 好好学习 xff0c 天天向上 xff01 Head First Java 如果你真的想要好好地学习Java xff0c 你会需要 Head Fir
  • 汽车电子MCU开发之FreeRtos Heap溢出检测

    1 项目背景 项目是基于Nxp Mcu 43 FreeRtos xff0c 成品是车机 xff08 车载导航系统 xff09 xff0c 在消息通信过程中会进入内存分配失败钩子函数里面 2 问题原因 FreeRtos系统的Heap堆不够用
  • RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED【解决方法】

    RuntimeError cuDNN error CUDNN STATUS NOT INITIALIZED 解决方法 在使用github上的开源框架pytorch deeplab xception在自己的数据集上进行语义分割时 xff0c
  • docker03(dockerfile镜像制作)

    文章目录 docker03 dockerfile镜像定制 一 引子二 dockerfile制作镜像步骤 xff08 镜像最多128层 xff09 xff08 一 xff09 dockerfile实例 xff08 二 xff09 docker
  • MapReduce处理数据流程

    一 mapreduce流程 图片来自 51doit Inputformat会将切片中每一行的数据表达成kv形式 k是这一行数据的偏移量 longwritable v是每一行数据内容类型 text map端会将每一行的数据进行处理 生成若干对
  • 关于java数组,形参的改变,会改变实参的值

    当java数组调用一个方法 xff0c 将数组传进去 public static void main String args int arr 61 6 1 2 3 4 5 sort arr arr length for int i 61 0
  • C++迭代器(iterator)

    什么是迭代器 xff08 iterator xff09 迭代器 xff08 iterator xff09 是一种可以遍历容器元素的数据类型 迭代器是一个变量 xff0c 相当于容器和操纵容器的算法之间的中介 C 43 43 更趋向于使用迭代
  • 理解lightdm.conf

    Before you do anything to your lightdm conf file you should make a backup simply run sudo cp etc lightdm lightdm conf et
  • selenium自动化测试

    目录 第一节 xff1a selenium概述 第二节 xff1a 在PyCharm中使用selenium 第三节 xff1a 使用selenium自动控制浏览器 第四节 xff1a selenium在大数据的使用 第一节 xff1a se
  • HTTP | HTTP报文

    01概述 客户端与服务器端之间的通信 xff0c 通过HTTP协议 xff0c 以HTTP报文的形式来实现数据的交互 HTTP报文是HTTP通信时发送的数据块 xff0c 本文主要从以下几个方面介绍HTTP报文 xff1a HTTP报文结构
  • k8s赋予用户进入容器以及向容器中拷贝文件的权限

    在k8s中集群中赋予用户进入容器以及向容器中拷贝文件的权限 xff0c 自定义clusterrole如下 xff1a span class token key atrule apiVersion span span class token
  • 翔仪 垂直起降固定翼 操作流程

    翔仪 垂直起降固定翼 操作流程 垂直起降固定翼 操作流程 01 地面站采用的是翔仪飞控软件 02 奥维互动定位平台 上规划飞行区域 长方形 为佳 覆盖作业范围200米以上 xff08 防止漏拍发生 xff09 导出KML格式 地图切换里面
  • 一、初识FreeRTOS之FreeRTOS简介

    目录 一 什么是FreeRTOS xff1f 二 为什么选择FreeRTOS xff1f 三 FreeRTOS的特点 四 FreeRTOS资料与源码下载 五 FreeRTOS源码文件介绍 一 什么是FreeRTOS xff1f Free即免
  • Hbase使用scan(get)过滤器查询封装(java)

    在hbase上使用过滤器查询 xff1a 指定参数 xff0c 指定返回字段 xff0c 指定对象 xff0c 指定单 xff08 多 xff09 版本 Collection lt E gt 详情见以下 xff1a Map lt K V g
  • 单片机12864带字库汇编使用教程

    一丶引脚说明 Lcd12864 xff08 带字库版本 xff0c ST7920为主芯片驱动 xff09 xff08 正面 xff09 xff08 反面 xff09 由于是带字库版本 xff0c 与不带字库版本有出入 xff0c 其部分引脚