• 第四天:gec6818开发板串口蓝牙模块的使用与配置


    串口通信

    串口是一种简单的通信接口,也是单片机中最常用最简单的通信方式

    通常传感器都是采用串口作为与上位机的通信接口

    ARM板有三个可外接传感器的串口接口,位于开发板右上角

    从上到下,分别是

    串口号 串口驱动设备文件

    CON2 “/dev/ttySAC1”

    CON3 “/dev/ttySAC2”

    CON4 “/dev/ttySAC3”

    将传感器链接到对应的串口端口后,在Linux中通过串口通信去获取该传感器的数据很简单

    只需要打开 串口设备文件,并且对串口进行初始化配置,即可调用write函数来发送数据或命令给传感器,或调用read函数从传感器中接收数据

    串口的初始化函数:

    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    #include  //串口配置需要的头文件
    /*
     *	init_serial:自定义的用来打开串口文件并对串口进行初始化的函数
     *	arg:
     *		@fild:串口设备文件名,指定您要使用的串口
     *		@baudrate:整数,指定您要配置的串口的通信波特率
     *			9600/115200/19200
     *	配置的串口协议:数据位8,停止位1,不要校验,不要硬件控制流
     *	return:
     *		成功,返回打开 并初始化好的 串口的文件描述符,后期根据该返回值来与链接在该串口上的传感器进行通信
     *		失败返回-1
     **/
    int init_serial(const char *file, int baudrate)
    { 
    	int fd;
    	
    	fd = open(file, O_RDWR);
    	if (fd == -1)
    	{
    		perror("open device error:");
    		return -1;
    	}
    
    	struct termios myserial;
    	//清空结构体
    	memset(&myserial, 0, sizeof (myserial));
    	//O_RDWR               
    	myserial.c_cflag |= (CLOCAL | CREAD);
    	//设置控制模式状态,本地连接,接受使能
    	//设置 数据位
    	myserial.c_cflag &= ~CSIZE;   //清空数据位
    	myserial.c_cflag &= ~CRTSCTS; //无硬件流控制
    	myserial.c_cflag |= CS8;      //数据位:8
    
    	myserial.c_cflag &= ~CSTOPB;//   //1位停止位
    	myserial.c_cflag &= ~PARENB;  //不要校验
    	//myserial.c_iflag |= IGNPAR;   //不要校验
    	//myserial.c_oflag = 0;  //输入模式
    	//myserial.c_lflag = 0;  //不激活终端模式
    
    	switch (baudrate)
    	{
    		case 9600:
    			cfsetospeed(&myserial, B9600);  //设置波特率
    			cfsetispeed(&myserial, B9600);
    			break;
    		case 115200:
    			cfsetospeed(&myserial, B115200);  //设置波特率
    			cfsetispeed(&myserial, B115200);
    			break;
    		case 19200:
    			cfsetospeed(&myserial, B19200);  //设置波特率
    			cfsetispeed(&myserial, B19200);
    			break;
    	}
    	/* 刷新输出队列,清除正接受的数据 */
    	tcflush(fd, TCIFLUSH);
    
    	/* 改变配置 */
    	tcsetattr(fd, TCSANOW, &myserial);
    
    	return fd;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72

    eg:调用串口

    init_serial(ttySAC1,9600);
    
    • 1

    这模块资料内容有点多,我打包放到我的资源处了,可自行下载。

    下载链接跳转

    压缩包里面包括lanya.c实现手机蓝牙app与开发板聊天通信,手机蓝牙连接app,以及蓝牙使用方法和配置方法软件等
    
    • 1

    在这里插入图片描述

  • 相关阅读:
    阿里云大数据实战记录4:生产环境添加列
    Flume 的基本介绍和安装部署
    Python----range方法(函数)
    [H5动画制作系列 ] Text及Button 的基础原理Demo
    Flowable 任务如何认领,回退?
    【yolov4】基于yolov4深度学习网络目标检测MATLAB仿真
    HarmonyOS开发环境搭建
    Python数据分析实验一:Python数据采集与存储
    PDFView4NET 2022.09.02 Crack
    【C++】C到C++的入门知识
  • 原文地址:https://blog.csdn.net/xqmids99/article/details/133123803