请稍侯

K60 SPI触发DMA数据传输

  这段时间一直在折腾K60的DMA和SPI,希望通过DMA将数据通过SPI发送出去。这篇博客介绍的功能是实现了SPI0和SPI1的回环测试,然后通过SPI0触发DMA,将数据从内存A通过SPI0发送到SPI1,SPI1再次触发DMA,将数据存储到内存B。下面介绍下如何实现的。 1 SPI的...

树莓派拍照上传--RASPICAM+七牛

  在买树莓派的时候顺带买了原装的树莓派摄像头模组,想要实现拍摄图片加上上传到网盘的功能。树莓派的摄像头还是蛮好用的,或者大家可以使用自己的USB摄像头,不过还是老问题,注意兼容性的问题。首先更新下软件: sudo apt-get update sudo apt-get upgrade  ...

树莓派驱动GPIO--LED+键盘

  单片机最近本的功能就是通用输入输出功能(GPIO),树莓派b+板上引出了40个引脚,包括27个GPIO供使用。在烧入的镜像中已经集成python以及在python中封装的操作GPIO的类:RPi.GPIO。有了这个包,我们就可以拿树莓派来驱动一些外设了,首先是驱动一盏LED灯。 LE...

树莓派入手初体验--镜像烧写+登陆

  一个多月前的买的树莓派由于前段时间杂事太多一直搁置在一边,这几天终于有空又将它掏了出来。我买的时候b+版本已经发售了,于是就买了b+的板子。比b多了十几个GPIO口,而且能耗更低。   首先我们需要一张SD卡作为树莓派的硬盘,SD卡的选项可以参考树莓派验证外设,这个外设列表都是经过爱好...

可变参数的函数实现

  提到可变参数的函数,大家第一个想到的肯定就是printf,在printf使用的时候,我们可以传入任意个参数,那么它到底是如何实现的呢?首先回忆下函数调用的过程,正常情况下C的函数参数入栈遵循__stdcall约定, 即从右到左将函数的参数压栈。如图所示,为了简明一点图中字节对齐填充没有画出...

最小值宏定义的解析

   如果让你写一个求最小值的宏定义时,大部分人可能觉得很简单,心想只要注意加上括号不久可以么,信手拈来,刷刷写下: #define min(x, y) ((x) < (y) ? (x) : (y))    确实在大部分情况下,这个宏定义已经足够使用,我们考虑这么一种情况: ...

为什么size_t重要?(Why size_t matters)

  之前在《内存拷贝的注意事项》一文中提到过size_t,可能许多人对这个类型不太熟悉没有用过或者根本不敢去用,最近看到一篇文章对这个类型讲的比较详细,便翻译过来让不熟悉的同学可以知道它产生的原因以及如何使用。   原文地址: Why size_t matters   前言:使用si...

内存拷贝的注意事项

  有道面试题是让写出memcpy的实现,memcpy是c和c++使用的内存拷贝函数,功能是从源地址所指的内存地址的起始位置开始拷贝n个字节到目标地址所指的内存地址的起始位置中。与此类似的,在使用strcpy的时候,也应该需要注意这些问题。我们粗略的考虑下有哪些是值得注意的。   1 需...

K60驱动步进电机中遇到的光电隔离问题

  光电隔离这个概念之前听说过,但是也是仅限于听说过,自己并未遇到过需要隔离的情况。最近在用K60驱动步进电机运动的时候就遇到了点问题,最终将问题定位到了光电隔离这一块,搞了几天才搞定,果然遇到问题才是学习知识最有效的途径。 问题描述   问题是这样产生的:我手上有一个42的两相步进电机,...

C语言多线程编程初探--MinGW+pthread

  前两天看到何登成的博客中谢了一篇关于锁的文章[1],于是想在本地搭建环境试验下文章中的例子,自己的机器是windows,装了MinGW,想着如何能实现多线程,google了小下,发现pthread,pthread其实就是POSIX thread,定义了创建和操纵线程的一套API,一般在类U...