<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
		<id>http:///https//wiki.microduino.cn/index.php?action=history&amp;feed=atom&amp;title=%E7%AC%AC%E5%8D%81%E5%9B%9B%E8%AF%BE--MicroWRT_%E4%B8%B2%E5%8F%A3%E4%BD%BF%E7%94%A8</id>
		<title>第十四课--MicroWRT 串口使用 - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http:///https//wiki.microduino.cn/index.php?action=history&amp;feed=atom&amp;title=%E7%AC%AC%E5%8D%81%E5%9B%9B%E8%AF%BE--MicroWRT_%E4%B8%B2%E5%8F%A3%E4%BD%BF%E7%94%A8"/>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=%E7%AC%AC%E5%8D%81%E5%9B%9B%E8%AF%BE--MicroWRT_%E4%B8%B2%E5%8F%A3%E4%BD%BF%E7%94%A8&amp;action=history"/>
		<updated>2026-04-22T00:01:52Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https//wiki.microduino.cn/index.php?title=%E7%AC%AC%E5%8D%81%E5%9B%9B%E8%AF%BE--MicroWRT_%E4%B8%B2%E5%8F%A3%E4%BD%BF%E7%94%A8&amp;diff=8424&amp;oldid=prev</id>
		<title>2015年5月31日 (日) 01:59 Shengkai81@gmail.com</title>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=%E7%AC%AC%E5%8D%81%E5%9B%9B%E8%AF%BE--MicroWRT_%E4%B8%B2%E5%8F%A3%E4%BD%BF%E7%94%A8&amp;diff=8424&amp;oldid=prev"/>
				<updated>2015-05-31T01:59:14Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;zh-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;2015年5月31日 (日) 01:59的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l115&quot; &gt;第115行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第115行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	//尝试先写内容&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	//尝试先写内容&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;int &lt;/del&gt;i=0;i&amp;lt;100;i++)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	for(i=0;i&amp;lt;100;i++)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	{&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		nread=write(fd,buff,8);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		nread=write(fd,buff,8);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Shengkai81@gmail.com</name></author>	</entry>

	<entry>
		<id>https//wiki.microduino.cn/index.php?title=%E7%AC%AC%E5%8D%81%E5%9B%9B%E8%AF%BE--MicroWRT_%E4%B8%B2%E5%8F%A3%E4%BD%BF%E7%94%A8&amp;diff=7509&amp;oldid=prev</id>
		<title>Shengkai81@gmail.com：Created page with &quot;1.进入/etc/目录,修改inittab，打开文件并将如下代码的最后一行注释掉。 &lt;source lang=&quot;cpp&quot;&gt; ::sysinit:/etc/init.d/rcS S boot ::shutdown:/etc/init.d/rcS K...&quot;</title>
		<link rel="alternate" type="text/html" href="https//wiki.microduino.cn/index.php?title=%E7%AC%AC%E5%8D%81%E5%9B%9B%E8%AF%BE--MicroWRT_%E4%B8%B2%E5%8F%A3%E4%BD%BF%E7%94%A8&amp;diff=7509&amp;oldid=prev"/>
				<updated>2015-01-27T04:57:01Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;1.进入/etc/目录,修改inittab，打开文件并将如下代码的最后一行注释掉。 &amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt; ::sysinit:/etc/init.d/rcS S boot ::shutdown:/etc/init.d/rcS K...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;1.进入/etc/目录,修改inittab，打开文件并将如下代码的最后一行注释掉。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
::sysinit:/etc/init.d/rcS S boot&lt;br /&gt;
::shutdown:/etc/init.d/rcS K stop&lt;br /&gt;
ttyS0::askfirst:/bin/login&lt;br /&gt;
#ttyS1::askfirst:/bin/login&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2.编辑serial.c文件，代码如下：&lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 *按照教程学习串口的编程&lt;br /&gt;
 *网址：http://blog.csdn.net/shanzhizi/article/details/9241393&lt;br /&gt;
 */&lt;br /&gt;
//头文件&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt; 	//标准输入输出定义&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;	//标准函数库定义&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;	//Unix标准函数定义&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt; 	//文件控制定义&lt;br /&gt;
#include &amp;lt;termios.h&amp;gt;	//POSIX中断控制定义&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;	//错误号定义&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//定义波特率数组&lt;br /&gt;
int speed_arr[] = {B115200, B38400, B19200, B9600, B4800, B2400, B1200, B300};&lt;br /&gt;
int name_arr[] = {115200,38400, 19200, 9600, 4800, 2400, 1200, 300};&lt;br /&gt;
&lt;br /&gt;
//打开串口&lt;br /&gt;
int open_port(void)&lt;br /&gt;
{&lt;br /&gt;
	int fd;		//串口的标识符&lt;br /&gt;
	//O_NOCTTY用来告诉Linux这个程序不会成为“控制终端”&lt;br /&gt;
	//O_NDELAY用来告诉Linux这个程序不关心DCD信号&lt;br /&gt;
	fd=open(&amp;quot;/dev/ttyS1&amp;quot;,O_RDWR | O_NOCTTY | O_NDELAY);&lt;br /&gt;
	if(fd == -1)&lt;br /&gt;
	{&lt;br /&gt;
		//不能打开串口&lt;br /&gt;
		perror(&amp;quot;open_port: Unable to open /dev/ttyS1 -&amp;quot;);&lt;br /&gt;
		return(fd);&lt;br /&gt;
	}&lt;br /&gt;
	else&lt;br /&gt;
	{&lt;br /&gt;
		fcntl(fd, F_SETFL, 0);&lt;br /&gt;
		printf(&amp;quot;open ttys1 .....\n&amp;quot;);&lt;br /&gt;
		return(fd);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//设置波特率&lt;br /&gt;
void set_speed_and_parity(int fd, int speed)&lt;br /&gt;
{&lt;br /&gt;
	int i=0;		//设置循环标志——注意不要在for内设置，否则会出错&lt;br /&gt;
	struct termios Opt;	//定义termios结构&lt;br /&gt;
	if(tcgetattr(fd,&amp;amp;Opt)!=0)&lt;br /&gt;
	{&lt;br /&gt;
		perror(&amp;quot;tcgetattr fd&amp;quot;);&lt;br /&gt;
		return;&lt;br /&gt;
	}&lt;br /&gt;
	for(i = 0; i &amp;lt; 8 ; i++)&lt;br /&gt;
    	{&lt;br /&gt;
        	if(speed == name_arr[i])&lt;br /&gt;
        	{	&lt;br /&gt;
            		tcflush(fd, TCIOFLUSH);&lt;br /&gt;
            		cfsetispeed(&amp;amp;Opt, speed_arr[i]);&lt;br /&gt;
            		cfsetospeed(&amp;amp;Opt, speed_arr[i]);&lt;br /&gt;
			/*tcsetattr函数标志：&lt;br /&gt;
			TCSANOW：立即执行而不等待数据发送或者接受完成。&lt;br /&gt;
			TCSADRAIN：等待所有数据传递完成后执行。&lt;br /&gt;
			TCSAFLUSH：Flush input and output buffers and make the change&lt;br /&gt;
			*/&lt;br /&gt;
            		if(tcsetattr(fd, TCSANOW, &amp;amp;Opt) != 0)&lt;br /&gt;
            		{	&lt;br /&gt;
                		perror(&amp;quot;tcsetattr fd&amp;quot;);&lt;br /&gt;
                		return;&lt;br /&gt;
            		}&lt;br /&gt;
            		tcflush(fd, TCIOFLUSH);&lt;br /&gt;
        	}&lt;br /&gt;
    	}&lt;br /&gt;
	//设置奇偶校验——默认8个数据位、没有校验位&lt;br /&gt;
        Opt.c_cflag &amp;amp;= ~PARENB;&lt;br /&gt;
        Opt.c_cflag &amp;amp;= ~CSTOPB;&lt;br /&gt;
        Opt.c_cflag &amp;amp;= ~CSIZE;&lt;br /&gt;
        Opt.c_cflag |= CS8;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
//设置奇偶校验——默认8个数据位、没有校验位&lt;br /&gt;
int set_parity()&lt;br /&gt;
{&lt;br /&gt;
	Opt.c_options.c_cflag &amp;amp;= ~PARENB&lt;br /&gt;
	options.c_cflag &amp;amp;= ~CSTOPB&lt;br /&gt;
	options.c_cflag &amp;amp;= ~CSIZE;&lt;br /&gt;
	Opt.c_cflag |= CS8;&lt;br /&gt;
}&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
int main(void)&lt;br /&gt;
{&lt;br /&gt;
	int fd;&lt;br /&gt;
	int nread,i;&lt;br /&gt;
	char buff[]=&amp;quot;Hello\n&amp;quot;;&lt;br /&gt;
	//打开串口&lt;br /&gt;
	if((fd=open_port())&amp;lt;0)&lt;br /&gt;
    	{&lt;br /&gt;
        	perror(&amp;quot;open_port error&amp;quot;);&lt;br /&gt;
        	return 0;&lt;br /&gt;
    	}&lt;br /&gt;
	//设置波特率和校验位&lt;br /&gt;
	set_speed_and_parity(fd,115200);&lt;br /&gt;
	//设置校验位&lt;br /&gt;
	//set_parity();&lt;br /&gt;
	&lt;br /&gt;
	printf(&amp;quot;fd=%d\n&amp;quot;,fd);&lt;br /&gt;
	&lt;br /&gt;
	//尝试先写内容&lt;br /&gt;
	for(int i=0;i&amp;lt;100;i++)&lt;br /&gt;
	{&lt;br /&gt;
		nread=write(fd,buff,8);&lt;br /&gt;
		//nread=read(fd,buff,8);&lt;br /&gt;
		printf(&amp;quot;nread=%d,%s\n&amp;quot;,nread,buff);&lt;br /&gt;
	}&lt;br /&gt;
	//关闭串口&lt;br /&gt;
	close(fd);&lt;br /&gt;
	return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
3.进行编译，然后将生成的bin文件放在/usr/bin目录下直接运行，打开串口就可以看到输出地结果了。&lt;/div&gt;</summary>
		<author><name>Shengkai81@gmail.com</name></author>	</entry>

	</feed>