7 - 输入/输出:UART(串口)

UART是单片机与计算机通信的重要工具,可以外接蓝牙模块进行通信,也可以通过有线连接usb进行通信。
通过有线usb连接计算机时,单片机上只需连接TX,RX,GND,一般不需要连接VCC。
单片机的底层库一般都自带了UART通信模块,激活对应管脚,设定好波特率即可在程序中调用。
波特率决定数据的传输速率,波特率越高传输越快。一般为了稳定,传简单的数据用9600就够;传图像的话,最好用115200或以上,节省时间。

K60

K60用的是野火的底层库,可以参考它的手册;

输出

输出的话,定义好输出端口和波特率就能用。

uart_init (UART1,19200);   //初始化 串口 1 波特率为 19200
uart_putchar (UART1,'F');   //发送一个字符'F'
uart_sendStr (UART1,"uart_str 函数发送数据");  //发送字符串

开启Uart输入中断

// isr.h
// 串口输入中断服务
#undef VECTOR_061
#define VECTOR_061 UART0_IRQHandler
extern void UART0_IRQHandler(void);
// main.c
// main() 函数内
//打开串口中断
UART_IRQ_EN(UART0);

继续阅读“7 - 输入/输出:UART(串口)”

马尼拉中转计划

既然要回家,就找个地方中转一下吧。
我是个不诚实的孩子,这次的马尼拉中转计划出发前只告诉了舍友,母亲大人不知道。

交通

北京 -> 马尼拉, 宿雾航空,4.5小时,含税535元;
马尼拉 -> 澳门, 亚洲航空,2小时,机票115元+机场税75元+餐食23元=213元;
总计748元。

北京->马尼拉

宿雾在首都机场T2。
过安检,不让我进,之后我意识到,我走到国内出发那儿了....
拿着网上打印的登机牌到国际出发,出入境又表示,自己打印的不能用,要去柜台重新印一遍。幸好宿雾那柜台就寥寥几个人排着队。
Broading Pass

每次都能遇见212登机口。
Gate 212

宿雾航空是屌丝界的佼佼者,航空界的硬座。
可能受我国外交部旅行警示的影响,上座率大概只有50%。
在爬升的过程中,有不少乘客各种走动和挪行李,真揪心啊。他们这么拼只为占一排空座躺着睡!

睡梦中,抵达了马尼拉。
Manila Airport
继续阅读“马尼拉中转计划”

RHEL6: 网卡bonding

通过bonding,可以将两块或多块网卡当作一块网卡使用,可用于提高性能或是冗余。

参考文档

1. https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s2-networkscripts-interfaces-chan.html
2.

# yum install kernel-doc
# vim /usr/share/doc/kernel-doc-2.6.32/Documentation/networking/bonding.txt

继续阅读“RHEL6: 网卡bonding”

tigerVNC远程桌面控制

用VNC可以以桌面的方式,连接到远程电脑进行操作。
下面描述如何对VNC Server和VNC Client进行配置。
VNC Server即要远程连到的电脑。

VNC Server的配置

1. 安装tigervnc-server

# yum install tigervnc-server

2. 设置VNC密码

# vncpasswd

执行这条命令的用户就是vnc的用户名;
输入两次密码就设置成功了。

3. 修改vncviewer配置文件

# vim /etc/sysconfig/vncservers 

里面加上两行

VNCSERVERS="2:root"
VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp"

2是Display号,root是用户。

4. 开放防火墙5900-6000端口,重启vncserver

# /etc/init.d/vncserver restart

继续阅读“tigerVNC远程桌面控制”

GNOME:每隔30秒检测网络连通的脚本

想实现每隔30秒自动检测网络是否连通,并在桌面弹窗显示结果。

notify-send

用notify-send命令可以调出弹窗。
notify-send [OPTIONS] [body]
可以这样简单地调用 notify-send "标题" "内容"
如,

# notify-send "Network" "Connected."

sleep

要每30s检测一次,用sleep比较好。(at和cron都不咋靠谱)
用sleep 30s相当于程序延时30s。
继续阅读“GNOME:每隔30秒检测网络连通的脚本”

GDM:修改桌面登录界面的分辨率

修改桌面登录界面的分辨率,而不修改用户的分辨率。比如,登录界面的分辨率是800*600,而用户登录后,分辨率还是用户自己设定的分辨率。

GDM(GNOME Display Manager)是专门管理图形登录界面的,修改它的分辨率即可。

方法1:修改gdm配置文件

修改/var/lib/gdm/.config/monitors.xml这个配置文件,可以改变登录界面的分辨率。
/var/lib/gdm/.config/monitors.xml这个文件默认是不存在的,我们可以通过用图形化的DISPLAY配置程序来生成一个。
进入桌面,System->Preference->Display,出现以下界面,点Apply。
gdm1
于是,用户的家目录会生成这个文件 ~/.config/monitors.xml。
将文件复制到GDM的配置目录中,并把所有者改为gdm。

# cp ~/.config/monitors.xml /var/lib/gdm/.config/monitors.xml
# chown gdm.gdm /var/lib/gdm/.config/monitors.xml

修改这个文件里面的分辨率。

# vim /var/lib/gdm/.config/monitors.xml

尝试修改为640x480.


  
      no
      
          ???
          0x0000
          0x00000000
          640
          480
          60
          0
          0
          normal
          no
          no
          no
      
  
     

重启图形,即可看到登录界面分辨率变成了640x480,而登录进去还是用户原来配置的分辨率。

gdm2

继续阅读“GDM:修改桌面登录界面的分辨率”