TA的每日心情 | 怒 2013-1-19 13:47 |
---|
签到天数: 4 天 连续签到: 1 天 [LV.2]偶尔看看I
|
本帖最后由 奇迹的龙 于 2013-1-16 01:29 编辑
考完研闲了一段时间,这两天开始正式学习单片机开发,以便完成毕业设计。本来想跟大家分享Raspberry Pi与STM32F4DISCOVERY开发板之间,使用nRF24L01无线模块进行通讯的方法,无奈水平有限,暂时还没能调试好,为了赶上爱板网的这次分享活动,就先将Raspberry Pi的GPIO端口控制方法跟大家分享一下,其他的以后再发。
第一步,安装系统.建议Raspberry Pi官方的Debian系统,在这里下载好镜像之后,dd至SD卡上即可,系统的初始化设置可能需要用到显示器。
第二步,使用SSH登录Raspberry Pi。默认用户名:pi,密码:raspberry,主机名:raspberrypi,将Raspberry Pi通过网线连上路由器之后,使用ssh命令登录:第三步,下载并安装GPIO库。首先下载源代码:- wget http://www.open.com.au/mikem/bcm2835/bcm2835-1.16.tar.gz
复制代码 然后编译安装:- tar xzvf bcm2835-1.16.tar.gz
- cd bcm2835-1.16
- ./configure
- make
- sudo make install
复制代码 第四步,示例。这个C库暂时还没有文档,所以只能先看代码注释了解用法,好在代码不多。下面用这个交替闪烁两个LED灯的示例来验证下吧。- #include <bcm2835.h>
- #define LEDA_PIN RPI_GPIO_P1_16 /* LED灯A使用P1上的16引脚 */
- #define LEDB_PIN RPI_GPIO_P1_18 /* LED灯A使用P1上的18引脚 */
- int main(int argc, char **argv)
- {
- if (!bcm2835_init())
- return 1;
- /* 初始化GPIO端口 */
- bcm2835_gpio_fsel(LEDA_PIN, BCM2835_GPIO_FSEL_OUTP);
- bcm2835_gpio_write(LEDA_PIN, LOW);
- bcm2835_gpio_fsel(LEDB_PIN, BCM2835_GPIO_FSEL_OUTP);
- bcm2835_gpio_write(LEDB_PIN, LOW);
- while (1) {
- bcm2835_gpio_write(LEDA_PIN, HIGH);
- bcm2835_gpio_write(LEDB_PIN, LOW);
- bcm2835_delay(250);
- bcm2835_gpio_write(LEDA_PIN, LOW);
- bcm2835_gpio_write(LEDB_PIN, HIGH);
- bcm2835_delay(250);
- }
- return 0;
- }
复制代码 第五步,编译运行。将上面的代码保存为文件,比如rpi_led.c,然后上传到Raspberry上:- scp rpi_led.c pi@raspberrypi:~
复制代码 编译:- gcc rpi_led.c -l rt -l bcm2835 -o rpi_led
复制代码 将两只LED灯分别连接到GPIO23、GPIO24和Ground,运行:怎么样,两只LED灯是不是已经开始交替闪烁了?
|
|