nRF51800 蓝牙学习 进程记录 2:关于二维数组 执念执战
前天在玩OLED时想完成一直想弄得一个东西,就是简单的单片机游戏。因为STM32和nRF51822的内存足够,所以就用缓存数组的方法来显示图像(我也不知道术语是啥,反正就是在内存中建立一个128X64的二维数组,更新显示时将整个数组刷新到屏幕上),而且这两个OLED是串口的(还有一个128X32的OLED,一样串口的,连驱动时序和驱动函数都一样,两个都太小了,还那么贵......),四个IO口就能驱动(两个还是供电的VCC和GND),所以不像之前的那个mini 12864屏幕,它是8位并口的,带读写功能,而这个串口的只能写,不能读(那个Mini12864是5V的,我试着不加外加电路用STM32没驱动成功,可能是我水平不够,另外总共十多个引脚,全弄转换电路太复杂,而STM32的5V兼容当时我还不知道,就一直放着了,没在用STM32 试过,为了简单点使用12864,也为了做毕设,就又买了俩3.3V的),所以开辟一个缓存数组可以解决读屏幕内容这个问题。(以后看还能想着补上三种12864的照片吧)
但是在刚开始写程序时就出了问题,就是对于二维数组的定义和引用出现了问题。现在解决了,顾总结如下(仅我知道的和刚刚解决的)。
1:二维数组在函数定义时,要定义到列,其中列数要与要传递来的二维数组的列向量数一致。如:
定义一个二维数组:
unsigned char T_image[4][6]={ //就是一个俄罗斯方块的一个图形的四个方向变换的图形
{0,1,0,1,1,1},
{ 1,0,1,1,1,0},
{1,1,1,0,1,0},
{0,1,1,1,0,1}};
2:然后定义一个函数,此函数能够调用上面二维数组,但不限于上面一个,则定义为:void Position_change(struct POSITION pos,unsigned char ch[][6]);,注意定义中对数组的定义,就是定义到列向量,并且下标数值与即将引用的数组的列向量下标相等值,而行向量下标则不需要写(所以上面定义二维数组时最好行列向量下标值要统一)。使用时便可以直接传递一个定义了的二维数组,如在main中调用时写为:Position_change(pos,T_image); 就可以了。
3:若在这个定义的函数中还调用了另一个函数Draw_position,这个函数要使用ch[][6]传递的函数,则在定义这个函数时和上面那个函数一样,定义到列向量:void Draw_position(unsigned char ch[][6]);然后在上面那个函数中被调用时写成 Draw_position(ch);就可以了,即二维数组变量作为传递函数时只需要写方括号前面的名称就好,不需要写方括号,也不需要精确到列向量,和上面那个函数在main函数中调用一样。即整体写为:
void Position_change(struct POSITION pos,unsigned char ch[][6])
{ Draw_position(ch);
}
4:若函数中还有对传递二维数组的for循环,则只需要对定义中的二维数组进行操作就行了:
for(i=0;i<4;i++)
for(n=0;n<6;n++)
if(ch[i][n]==0)....... //ch就是指定义时的参数变量名称,定义为啥就写为啥好了,就能传递下来了
else......
好了,基本就写完了。其实这个很简单,只是当时学的时候没觉得这个重要,就简单而过了。
以后要写点对nRF51822的应用体验,拟想从开箱开始(额,用了好久了,跳过吧,从怎么连接电脑设置kile5并用SWD下载开始吧),但是不知道人家允许么......
本文水平有限,内容很多词语由于知识问题不严谨或很离谱,但主要作为记录作用,能理解就好了,希望以后的自己和路过的大神对必要的错误提出批评与指点,对可笑的错误不要嘲笑,指出来我会改正的。
nRF51800 蓝牙学习 进程记录 2:关于二维数组 执念执战的更多相关文章
- nRF51800 蓝牙学习 进程记录 1:感想
一直想开一个高大上点的博客,觉得博客园不错,便申请了.一直没时间看,都快忘了,无意间登上提示申请到了.便写个东西看看. 正在学习nRF51822的蓝牙开发板,为了做毕设准备.备考中,一直没时间学,但今 ...
- 个人学习记录1:二维数组保存到cookie后再读取
二维数组保存到cookie后再读取 var heartsArray = [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0],[0,0, ...
- C#学习笔记04--排序/查找/二维数组/交叉数组
一. 冒泡排序(重点) 思路: 每次比较把较小的放在前面, 大的放到后面; 图解:下图是最坏情况下的排序 ` 冒泡排序m个元素, 就有(m-1)趟排序, 第一趟m-1次, 第二趟 m-2次.... ...
- Python学习笔记 之 递归、二维数组顺时针旋转90°、正则表达式
递归.二维数组顺时针旋转90°.正则表达式 1. 递归算法是一种直接或间接调用自身算法的过程. 特点: 递归就是在过程或函数里调用自身 明确的递归结束条件,即递归出口 简洁,但是不提倡 递归次数多 ...
- 【Java学习笔记之八】java二维数组及其多维数组的内存应用拓展延伸
多维数组声明 数据类型[][] 数组名称; 数据类型[] 数组名称[]; 数据类型数组名称[][]; 以上三种语法在声明二维数组时的功能是等价的.同理,声明三维数组时需要三对中括号,中括号的位置可以在 ...
- Java-J2SE学习笔记-字符串转化为二维数组
1.字符串转化为二维Double数组 2.代码: package Test; public class TestDouble { public static void main(String[] ar ...
- Java菜鸟学习笔记--数组篇(三):二维数组
定义 //1.二维数组的定义 //2.二维数组的内存空间 //3.不规则数组 package me.array; public class Array2Demo{ public static void ...
- 深入理解C/C++二维数组
深入理解C/C++二维数组 前言 本来以为自己对二维数组的理解还可以,没感觉有什么,但是今天小伙伴问了一个问题感觉迷惑了好久,于是决定细致的记录一下,一步一步的探究各种关于二维数组的问题,巩固基础. ...
- C++学习笔记之由文本文件读取数据到vector模板建立的二维数组 并存储为新的文本文件
阅读本文可首先参考: C++学习笔记之输入.输出和文件 测试数据: /*读取txt文件到二维数组*/ #include <iostream> #include <fstream> ...
随机推荐
- eclipse创建android项目,无法正常预览布局文件
http://jingyan.baidu.com/article/d621e8da0e0e052865913fae.html
- 如何把程序钉到Windows7任务栏(修正版)
源:如何把程序钉到Windows7任务栏(修正版) 在CSDN论坛看到有网友提问如何把程序钉到Windows7的任务栏,ccrun(妖哥)对这个问题很感兴趣,于是google了一下,没有找到相关的AP ...
- Quick Cocos2dx Action相关
周末在家除了看犯罪心里和反恐24小时,啥都没干,为毛在家老是不能安安静静的看书学习敲代码?不知道啊 心好累,感觉学习不下去了. 然后公司上午有半天世界杯决赛假,下午回来更新了svn,没啥工作内容,只好 ...
- 手机访问pc网站,自动跳转到手机网站
<script type='text/javascript'> var browser = { versions: function () { var u = navigator.user ...
- window.location获取URL中各部分
博客分类: JAVASCRIPT JavaScriptASP.netSchemeASP网络协议 URL即:统一资源定位符 (Uniform Resource Locator, URL) 完整的URL ...
- 解决浏览器不支持HTML5和CSS3
Modernizr插件可用于解决:<响应式web设计>提及! 其他: 第一种方法:IE9以下版本的IE将创建HTML5标签, 非IE浏览器会忽略这段代码,因此不会发生http请求,也就不影 ...
- STM32实现HID和u盘复合设备
USB设备可以定义一个复合设备,复合设备分两种,一种是一个设备多个配置,还有一种是一个配置多个接口,在本例中采用一个配置多个接口的方式 首先修改设备描述符,标准设备描述符和报告描述符都不需要修改, ...
- 巧用HTML5给按钮背景设计不同的动画
如何巧用HTML5设计按钮背景不同动画特效,在该特效中,当鼠标滑过按钮时,使用CSS3 animation 来动画 background-size 和 background-posit ...
- Xcode的版本问题
1. 已经安装了Xcode6,如何再安装Xcode5,并使两者共存? 2. Xcode6升级到Xcode7 适配问题 3. XCODE6中使用iOS7 SDK的方法: 从XCODE 5的目录中: /A ...
- FastJson的用法
一.简单数据的序列化 pubic class UserInfo implements Serializable{ private String name; private int age; publi ...