好文档 - 专业文书写作范文服务资料分享网站

智能小车单片机课程设计报告剖析

天下 分享 时间: 加入收藏 我要投稿 点赞

自己制作一个动态库.

首先写一个简单的c功能函数

编译成动态库:gcc -fPIC -shared 文件名 -o lib库文件名.so 在linux系统下.程序运行时默认搜素库的路径是/lib

把库拷贝到/lib下:cp lib库文件名.so /lib 错误提示\denied(权限不足)

方法:sudo cp lib库文件名.so /lib 提示让你输入密码1: sudo暂时将普通用户 的权限提高到root用户权限

再编译一个c应用程序,在程序中来调用库里实现的函数

gcc 应用程序名 -l库名(注意是去掉lib和.so的库名)

文件IO

linux系统下一切设备皆文件

操作文件:

open():打开一个文件

read()://从文件里边读出数据 write()//向文件里写入数据 close()//关闭文件

man手册: man 2 函数名

open: 头文件

#include #include #include

1.int open(const char *pathname, int flags);//仅限于打开一个已存在文件

参数1:文件的路径 参数2:打开方式的标志

O_RDONLY,//只读方式打开 O_WRONLY,//只写方式打开 O_RDWR.//可读可写方式打开

第6页 共17页

返回值:

打开成功:返回一个正数(文件描述符) 打开失败:-1

2.int open(const char *pathname, int flags, mode_t mode);//可以打开一个不存在的文件 参数1:文件的路径 参数2:打开方式的标志

O_RDONLY,//只读方式打开 O_WRONLY,//只写方式打开 O_RDWR.//可读可写方式打开

如果文件不存在必须|O_CRAET,创建该文件 参数3:权限 数 比如:0666

返回值:

打开成功:返回一个正数(文件描述符) 打开失败:-1

write:

头文件: #include

typedef int ssize_t

ssize_t write(int fd, const void *buf, size_t count); 参数1:就是open函数的返回值,文件描述符 参数2:你想要写入的数据

参数3:你想要写入的数据的字节大小

返回值:

写入成功:返回的是写入的字节大小 写入失败:-1

strlen:实际长度 sizeof:数组的大小

arduino

viod setup() {

第7页 共17页

端口的配置; }

void loop() {

任务的执行; }

arduino之呼吸灯实验: int led=13; void setup() {

pinMode(led,OUTPUT); }

void loop() {

digitalWrite(led,HIGH); delay(1000);

digitalWrite(led,LOW); delay(1000); }

渐变灯: 暗->亮->暗

PWM波:可调脉冲宽度波.

3,5,6,9,10,11这几个端口可以输出pwm波 analogWrite(pin, value)//输出pwm波 pin:管脚号:3,5,6,9,10,11中的任意一个 value:0~255中的任何一个数: 0:占空比为0%

255:占空比位100%

远程视频监控步骤:

1.将jpegsrc.v8b.tar.gz(图片库)

和mjpg-streamer-code-182.tar.gz(视频查看软件) 拷贝到ubuntu的家目录 2.解压缩

tar xvf jpegsrc.v8b.tar.gz

第8页 共17页

3. cd jpeg-8b

4. ./configure //创建Makefile文件 5. make

6. sudo make install //安装

程序运行时,默认寻找的头文件的路径在/usr/include,库文件的路径/lib

cd /usr/local/include

sudo cp * /usr/include cd /usr/local/lib

sudo cp libjpeg* /lib 7.切换到家目录:cd

移植查看视频的软件:

tar xvf mjpg-streamer-code-182.tar.gz cd mjpg-streamer-code-182 cd mjpg-streamer

make clean //清除已经编译过的程序 make

运行查看视频的软件:sudo ./start.sh 打开火狐浏览器

在地址栏输入127.0.0.1:8080 若发现视频绿屏

先强制结束程序运行:ctl+c. 解决方法:

修改start.sh

将第30行的 -y 删除

看看是否虚拟机识别到摄像头:ls /dev/video0

地址栏输入:127.0.0.1:8080/?action=stream 查看视频信息

127.0.0.1:8080/?action=snapshot 截屏图片,点击save image as可以保存图片

A8开发板:

cpu:三星s5pc100 内存:256M flash:256M

windows运行之前会有一个系统的引导代码叫BIOS

与windows类似,linux启动之前也有这样的一段代码叫做bootloader bootloader有很多种,我们选用其中的一种叫做uboot.

第9页 共17页

linux系统的启动步骤

1.运行uboot(初始化硬件,引导系统内核的加载) 2.内核的运行(zImage,linux的内核).

3.识别文件系统(类似于C盘,D盘,E盘).是rootfs.tgz

系统=内核+文件系统.

挂载系统.

要对uboot环境信息进行设置

首先把拨码开关拨到0000位置.选择uboot的启动方式.uboot从外存启动. 1.找到自己的COM端口号;打开putty

2.选中Serial,把波特率改为115200,端口号改为自己的端口号,Flow contrlo选择none

3.开启电源,会出现一个倒计时,在倒计时完成之前,随便敲一个键盘. 4.输入命令print可以显示uboot的打印信息

确保:

ipaddr=192.168.1.100//代表开发板的ip地址 serverip=192.168.1.200//代表ubuntu的IP地址 bootargs=root=nfs nfsroot=192.168.1.200:/source/rootfs ip=192.168.1.100 init=/linuxrc console=ttySAC0,115200//

打开虚拟机:

1.进入到/tftpboot目录下.

把zImage拖到虚拟机,前加cp ,后加 ./ 使用ls查看一下是否出现zImage 2.cd /source

把rootfs这个压缩包拖到虚拟机,前加cp ,后加 ./ 使用ls查看一下是否出现rootfs.tgz 3.解压命令:

sudo tar -xvf rootfs.tgz

要让你输入密码;输入1回车即可,密码是不可见的. 再用ls查看是否多了一个蓝色的文件rootfs.

4.修改ubuntu的ip地址.

找到wiffi图标,点击选中edit connection->IPV4 seting->manual->add ip netmask gateway

第10页 共17页

智能小车单片机课程设计报告剖析

自己制作一个动态库.首先写一个简单的c功能函数编译成动态库:gcc-fPIC-shared文件名-olib库文件名.so在linux系统下.程序运行时默认搜素库的路径是/lib把库拷贝到/lib下:cplib库文件名.so/lib错误提示\denied(权限不足)方法:sudocplib库文件名.so/l
推荐度:
点击下载文档文档为doc格式
3ltvw6lfki6bod04q39t7z7sh75m1a00ohc
领取福利

微信扫码领取福利

微信扫码分享