BBB学习之路

1,链接BBB:在打开的PC终端输入 ssh root@beaglebone.local即可登录。
2,登录时显示: Debian GNU/Linux 7


BeagleBoard.org BeagleBone Debian Image 2014-04-23


Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian
Last login: Wed Apr 23 21:48:45 2014 from zoucb-lenovo-g470.local
root@beaglebone:~#
3,然后输入 cd / 即可进入正常的终端使用过程。




Linux为我们提供了两个用于文件copy的命令,一个是cp,一个是scp,但是他们略有不同。
cp --- 主要是用于在同一台电脑上,在不同的目录之间来回copy文件
scp --- 主要是在不同的Linux系统之间来回copy文件 


pc和BBBlinux系统的交叉编译的编译命令为 arm-linux-gnueabihf-gcc


c语言函数中snprintf()函数的使用:


 int snprintf(char *str, size_t size, const char *format, ...); 


 将可变个参数(...)按照format格式化成字符串,然后将其复制到str中 如 len = snprintf(str,sizeof(str),"%d",23)表示将23按找整型数据转化为字符串并存储
 在str中


 (1) 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符('\0'); 


 (2) 如果格式化后的字符串长度 >= size,则只将其中的(size-1)个字符复制到str中,并给其后添加一个字符串结束符('\0') 


 函数返回值:若成功则返回欲写入的字符串长度,若出错则返回负值。
setitimer函数参数介绍
int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue);
which为定时器类型,setitimer支持3种类型的定时器:
ITIMER_REAL: 以系统真实的时间来计算,它送出SIGALRM信号。
ITIMER_VIRTUAL: -以该进程在用户态下花费的时间来计算,它送出SIGVTALRM信号。
ITIMER_PROF: 以该进程在用户态下和内核态下所费的时间来计算,它送出SIGPROF信号。
setitimer()第一个参数which指定定时器类型(上面三种之一);第二个参数是结构itimerval的一个实例;第三个参数可不做处理。
setitimer()调用成功返回0,否则返回-1。
struct itimerval 
{
struct timeval it_interval;
struct timeval it_value;
};


struct timeval 
{
long tv_sec;
long tv_usec;
};


it_interval指定间隔时间,it_value指定初始定时时间。如果只指定it_value,就是实现一次定时;如果同时指定 it_interval,则超时后,系统会重新
初始化it_value为it_interval,实现重复定时;两者都清零,则会清除定时器。
tv_sec提供秒级精度,tv_usec提供微秒级精度,以值大的为先,注意1s = 1000000us。
ovalue用来保存先前的值,常设为NULL。
如果是以setitimer提供的定时器来休眠,只需阻塞等待定时器信号就可以了。
打开PWM输出口的方法为:echo bone_pwm_P9_22 > /sys/devices/bone_capemgr.9/slots
然后会在/sys/devices/ocp.3下出现类似 pwm_test_P9_22.15 的文件路径,该路径下面即是操作PWM周期,占空比及运行情况的文件.


Beaglebone上串口的配置和使用方法:
1,配置BBB的串口功能:echo BB-UARTx > /sys/devices/bone_capemgr.*/slots (这里的UARTx为UART1, UART2, UART3, UART4中的一个).此时
 在/sys/devices/bone_capemgr.*/slots中会出现一个跟串口相关的条目(BB-UARTx),表示此时串口功能已经打开.同时在/dev下会出现相应的文件ttyOx(O为
 大写字母O,而不是数字0,x取值为1,2,3,4),此时已经可以操作串口了,代表BBB串口的基本配置已经完成.对ttyOx操作即可,后续会细说操作方法.
2,配置电脑端,由于Linux(ubuntu)已经自带串口转换芯片pl2303的驱动,所以建议采用带pl2303芯片的串口转USB设备.
 插上USB转串口,在电脑终端输入lsmod命令,若显示的数据中包含 usbserial 39507 1 pl2303 则表示linux已经支持pl2303,可以使用串口.可见,linux
 可以自动识别pl2303设备.
 之后在终端中输入dmesg | grep usb命令,在显示中(一般在末尾)出现类似[ 64.362942] usb 6-1: pl2303 converter now attached to ttyUSB0
 的文本则表示电脑已经正确链接该USB转串口设备,可以正常使用.在这里copy一个minicom的配置方法:
在终端中输入:minicom -s,选择


  +-----[configuration]------+


  | Filenames and paths |


  | File transfer protocols |


  | Serial port setup |


  | Modem and dialing |


  | Screen and keyboard |


  | Save setup as dfl |


  | Save setup as.. |


  | Exit |


  | Exit from Minicom |


  +--------------------------+


  配置成如下方式:


  +-----------------------------------------------------------------------+


  | A - Serial Device : /dev/ttyUSB0 |


  | B - Lockfile Location : /var/lock |


  | C - Callin Program : |


  | D - Callout Program : |


  | E - Bps/Par/Bits : 115200 8N1 |


  | F - Hardware Flow Control : No |


  | G - Software Flow Control : No |


  | |


  | Change which setting? |


  +--------------------------------------------------------------------


  完成后煺出,煺出后进入 Modem and dialing 配置成如下方式:


  (塬因:我们使用的是串口,而不Modem)


  +--------------------[Modem and dialing parameter setup]---------------------+


  | |


  | A - Init string ......... |


  | B - Reset string ........ |


  | C - Dialing prefix #1.... ATDT |


  | D - Dialing suffix #1.... ^M |


  | E - Dialing prefix #2.... ATDP |


  | F - Dialing suffix #2.... ^M |


  | G - Dialing prefix #3.... ATX1DT |


  | H - Dialing suffix #3.... ;X4D^M |


  | I - Connect string ...... CONNECT |


  | J - No connect strings .. NO CARRIER BUSY |


  | NO DIALTONE VOICE |


  | K - Hang-up string ...... |


  | L - Dial cancel string .. ^M |


  | |


  | M - Dial time ........... 45 Q - Auto bps detect ..... No |


  | N - Delay before redial . 2 R - Modem has DCD line .. Yes |


  | O - Number of tries ..... 10 S - Status line shows ... DTE speed |


  | P - DTR drop time (0=no). 1 T - Multi-line untag .... No |


  | |


  | Change which setting? (Return or Esc to exit) |


  +----------------------------------------------------------------------------+


配置完成后退出,在退出时一定要选择Save setup as dfl(此步骤设置minicom的默认启动设置),到此,Minicom的配置完成,连上串口线,打开开发板电源
即可看到串口输出的打印信息.
另外,使用图形化的cutecom也可,安装cutecom后在终端输入 sudo cutecom打开cutecom,(直接输入cutecom打开时貌似不能进行操作,无法打开串口,至少我的是这样),
打开cutecom后在Device后面输入:/dev/ttyUSB0,(使用输入的方式是因为下拉菜单中可能无法找到这个选项).然后设置好相应的波特率,停止位等就可以点击Open device
打开串口开始数据传输.

以下的ttyOx表示相应的串口文件:
BBB通过串口发送数据方法:echo abcdef123456 > /dev/ttyOx 即可发送 abcdef123456
BBB通过差unk读取数据的方法: cat /dev/ttyOx 若是收到数据则会返回相应的数据,否则会一直等待数据的到来.
BBB串口的波特率设定:输入 stty -F /dev/ttyOx 38400 即可将波特率设定为38400,设定串口的通信波特率时不能超过串口规定的最大波特率,
输入stty speed可以查看串口的最高波特率.
链接USB转串口设备时要连接TXD,RXD,GND三根线到BBB才可,此时串口的基本数据通信设置已经完毕,可以进行正常的数据发送和接收.
向slots写入固件"插入插槽"时需要相应的dtbo支持,可以在 /lib/firmware 下输入 ls *.dtbo查看是否存在该固件,存在则可以直接使用.否则需要编译相应
的dtbs并且将编译好的dtbo拷贝到该路径下才可直接使用.
IIC操作相关
1,BBB包含3个IIC设备,设备与Header的对应关系为: i2c-0 -> I2C1 i2c-1 -> I2C2 i2c-2 -> I2C3
  2,BBB链接IIC设备以后可以在终端输入命令:i2cdetect -y -r 1 来查看连接到BBB的外部IIC设备地址 
3,BBB自带了i2c-dev驱动,它使用ioctl方法对i2c设备进行配置,然后利用read()、write()函数就可以操作i2c设备了。
 要操作某个i2c设备,首先要确定它的地址。按照我在前文中的说法,通常i2cdetect显示的器件地址是由“7位”二进制数换算成的,而器件的读写地址
 则需要将这7位左移,然后在末尾添加一个1或0。但是对于i2c-dev驱动来说,我们不必费此周折,只要告诉他i2cdetect显示的那个地址就可以了,驱动
 会自动根据你的读操作或写操作来相应地在末尾添加1或者0。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沙漏AI机器人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值