项目框架 Framebuffer绘图 具体操作代码实现 定义 串口

物联网 = 嵌入式 + 网络

网络:Lora一对多、Zigbee一对多

项目框架


1、数据组织形式


        定义好数据通信协议(自学Modbus通信)

2、UI设计

        frame buffer

3、数据存储


        数据量:一包?

        频率:一天?

        存储策略:数据库?文件?

        存储方式,若是数据库存储,考虑怎么维护

4、WEB数据查询


        B / S WEB服务器 —— http HTML

        服务器并发:

                多进程

                多线程

                select

                poll

                epoll

5、云服务器数据上传


        MQTT协议、数据发布

6、软件框架 :并行或者串行

        多进程?进程间通信 —— 方法、原因

        多线程?线程间通信 —— 方法、原因

frame buffer—— 帧缓存、帧缓冲技术

        FrameBuffer是一种Linux系统下为应用层图像显示专门提供的一套接口,通过内存映射技术,对显存空间进行数据(RGB颜色值)写入,通过RGB颜色值,在显卡中进行转换最终汇集到显示屏上。

        FrameBuffer,可以译作"帧缓冲",有时简称为 fbdrv。这是一种独立于硬件的抽象图形设备。是Linux为显示设备提供的一个接口,把显存抽象后的一种设备,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。

        只要在Linux操作系统上,都具备frame buffer技术,面向文件描述符。

        内存映射的本质:将两块虚拟内存空间映射到一个物理内存空间

RGB

RGB888

红、绿、蓝各占8位,即总共3个字节可以描述——>32bit操作系统 用4字节读

故应该偏移四个字节

例:

16进制描述四字节红色:0x00FF0000

RGB565

用两个字节可以表示

显示设备操作

#include <sys/ioctl.h>

       
int ioctl(int fd, int request, ...);    


   ioctl(fd, FBIOGET_VSCREENINFO, &vinfo);    //获取屏幕信息(可变)

void *mmap(void *addr, size_t length, int prot, int flags,  int fd, off_t offset);


功能:内存映射
参数:
    addr:欲映射内存的起始地址,NULL表示系统自动选定,映射
          成功后返回该地址
    length:映射内存大小
    prot:映射区域的保护方式(读/写/执行/不能存取)
    flags:影响区域映射的各种特性
            MAP_SHARED:对映射区域写入的数据会复制回源文件内,
                        而且允许其他映射该文件的进程共享
            MAP_PRIVATE:对映射区域的写入操作会产生一个映射文件的复制,
                        即对此区域的任何修改都不会写回原来的文件内
    fd:要映射的目标文件
    offset:文件映射的偏移量(0代表从开头开始)
返回值:
    void * :返回映射欲映射内存的首地址
    eg:
    unsigned int* addr = mmap(NULL, 800*480*4, PROT_READ|PROT_WRITE,
            MAP_SHARED, fd, 0);

    
int munmap(void *addr, size_t length);


功能:解除内存映射
参数:
    addr:映射内存的地址
    length:映射内存大小

串口


接入Linux系统为文件 去ls / dev下看

端口:COM

读数据:

        1、打开设备文件

        2、设置串口通信参数

              波特率:9600、115200(bps 每秒传输的数据位数),两个通信设备波特率要一致

              数据位:5、6、7、8,常用8位

              停止位:1、2、1.5,常用1位(结束标志)

              校验位:奇校验、偶校验、无校验

        3、通过串口读写数据

        4、关闭串口

                        
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值