- 博客(27)
- 收藏
- 关注

原创 正点原子linux应用编程---遇见的错误和容易忘记的点
1.开始编译器在当前目录运行:source /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi命令。2.tftp服务器不响应,出现tftp timeout时,使用命令sudo service tftpd-hpa restart重启tftp服务器。
2024-08-02 20:34:03
167
1
原创 linux应用编程--网络编程(socket编程基础)
该函数类似于open()函数,它的作用是创建一个网络通信端点(打开一个网络通信),如果成功则返回一个网络文件描述符,通常把这个文件描述符称为socket描述符,后续操作都需要把它作为参数。
2024-08-21 20:43:48
663
原创 linux应用编程--LCD屏幕利用freetye显示字符
freetype介绍:FreeType 一个完全免费(开源)的软件字体引擎库,设计小巧、高效、高度可定制且可移植,它提供了 统一的接口来访问多种不同格式的字体文件。它提供了一个简单、易于使用且统一的接口来访问字体文件 的内容,从而大大简化了这些任务。请注意,“FreeType”也称为“FreeType 2”,以区别于旧的、已弃用的“FreeType 1”库,Freetype 1 库已经不再维护和支持了。
2024-08-12 20:47:08
870
原创 linux应用编程--在LCD上演示jpeg图片(使用libjpeg)
libjpeg 简介libjpeg 是一个完全用 C 语言编写的函数库,包含了 JPEG 解码(解压缩)、JPEG 编码(创建压缩)和 其他的 JPEG 功能的实现。可以使用 libjpeg 库对.jpg 或.jpeg 压缩文件进行解压或者生成.jpg 或.jpeg 压缩文 件。
2024-08-11 20:23:19
960
原创 linux应用编程--FrameBuffer
Frame 是帧的意思,buffer 是缓冲的意思,所以 Framebuffer 就是帧缓冲,这意味着 Framebuffer 就是一 块内存,里面保存着一帧图像。帧缓冲(framebuffer)是 Linux 系统中的一种显示驱动接口,它将显示设备 (譬如 LCD)进行抽象、屏蔽了不同显示设备硬件的实现,对应用层抽象为一块显示内存(显存),它允 许上层应用程序直接对显示缓冲区进行读写操作,而用户不必关心物理显存的位置等具体细节,这些都由 Framebuffer 设备驱动来完成。
2024-08-06 21:28:16
1218
原创 linux应用编程---使用tslib库
打开触摸屏设备:ts_open,函数原型如下:参数dev_name指定了触摸屏的设备节点,参数nonblock表示是否已非阻塞的方式打开触摸屏设备,如果等于0表示阻塞方式,非0则表示以非阻塞方式打开。调用成功过返回一个struct tsdev*指针,如果打开失败返回NULL;除了使用ts_open以外海可以使用ts_setup()函数:参数 dev_name 指定触摸屏的设备节点,与 ts_open()函数中的 dev_name 参数意义相同;
2024-07-30 20:54:19
1238
原创 linux应用编程---输入设备
除了 ABS_MT_SLOT 事 件 之 外 , Type B 协 议 还 会 使 用 到 ABS_MT_TRACTKING_ID 事 件 , ABS_MT_TRACTKING_ID 事件则用于触摸点的创建、替换和销毁工作,ABS_MT_TRACTKING_ID 事件 携带的数据 value 表示一个 ID,一个非负数的 ID(ID>=0)表示一个有效的触摸点,如果 ID 等于-1 表示该 触摸点已经不存在、被移除了;Type B 协议的重点是通过 ABS_MT_SLOT 事件上报各个触摸点信息的更新!
2024-07-24 21:27:26
1225
原创 linux编程--GPIO的使用
在配置 GPIO 引脚的中断触发模式之前,需将其设 置为输入模式: 非中断引脚:echo "none" > edge 上升沿触发:echo "rising" > edge 下降沿触发:echo "falling" > edge 边沿触发:echo "both" > edge 当引脚被配置为中断后可以使用 poll()函数监听引脚的电平状态变化,value:在 GPIO 配置为输出模式下,向 value 文件写入"0"控制 GPIO 引脚输出低电平,写入"1"则 控制 GPIO 引脚输出高电平。
2024-07-21 21:44:12
290
原创 linux学习笔记--高级I/O
阻塞IO:对文件的IO操作是哦阻塞的,非阻塞IO就是操作时相反的,非阻塞的。在使用open()函数打开文件时,参数flags指定O_NOONBLOCK标志时,后续IO操作就是非阻塞方式进行,如果未指定该标志,就默认以阻塞式操作。当然对于普通文件的读写操作是不会阻塞,所有指定该标志没有影响的。
2024-07-10 21:15:39
842
原创 linux学习---线程同步
1.线程同步是为了对共享资源的访问进行保护2.保护的目的时为了解决数据一致性的问题3.出现数据一致性问题其本质时在于进程的多个线程对共享资源的并发访问。
2024-07-07 20:29:34
622
原创 linux学习---线程
什么时线程:线程时参与系统调度的最小单位,它被包含在进程之中,时进程中的实际运行单位。一个进程中可以创建多个线程,多个线程实现并行运行,每个线程指向不同的任务。所有的程序都是从,main开始。main函数做执行的任务就是主线程需要执行的任务。主线程的重要性:1.其他新的线程是由主线程创建的。22主线程通常会在最后结束任务,执行各种清理工作,譬如回收各个子线程。特点:线程时程序的最基本的运行单位,而进程不能运行,真正运行的时进程中的线程。
2024-07-03 21:09:26
663
原创 linux学习笔记--进程
概念:一个可执行程序的实例,进程是一个动态过程,而非静态文件,它时程序的一次运行过程,当应用程序被加载到内存中运行之后它就成为了一个进程,当程序运行结束后也就意味着程序终止,这就是一个程序的生命周期。进程号:linux系统下每一个进程都有一个进程号(PID),进程号是一个正数,用于唯一标识系统下的某一进程。linux下命令执行ps可以查询系统进程相关的一些信息。在应用程序中,可以通过getpid();
2024-06-24 20:55:09
779
原创 linux学习笔记-信号
信号是异步的。信号本质上是一种int类型的数据。在Linux中又不可靠信号和可靠信号,1~31对应的是不可靠信号,其他的是可靠信号,具体信号如下图除了可靠和非可靠以外还有实时信号和非实时信号,非实时信号不支持排队是可靠信号,实时信号支持排队是可靠信号。常见信号和默认操作:SIGINT:例如按下CTRL+C时会有一个该信号发送给前台进程,该信号的系统默认操作时终止进程的运行。
2024-06-18 21:15:42
914
原创 蓝桥杯单片机学习-- 串口通信--数据接收
在单片机串口通信中,数据接收也是非常重要的一部分。数据接收的任务是从串口接收数据,并对这些数据进行处理和分析
2023-04-30 16:12:18
409
原创 cc2530协调器向终端发送消息
在cc2530组件的网络中,协调器组建网络,终端接入网络,协调器的地址一般是0x0000,终端使用AF_DataRequest函数向协调器发送消息
2023-04-28 14:58:13
756
原创 cc2530单片机用esp01使用http协议上传数据到onenet平台
协议(超文本传输协议HyperText Transfer Protocol),它是基于TCP协议的应用层传输协议,简单来说就是客户端和服务端进行数据传输的一种规则。 是一种无状态 (stateless) 协议, 协议本身不会对发送过的请求和相应的通信状态进行持久化处理。这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量的事务, 提高效率。,所以在单片机中利用HTTP协议是简单的数据上传协议。首先要利用AT指令配置esp01,具体可以在官方教程里面搜索。
2023-04-25 19:04:12
780
1
原创 onenet平台使用教程
点击添加界面以后就会进入产品的参数设置界面,产品信息界面可以根据自己需要填写,联网方式根据自己使用设备选择,但是都没有太大影响,操作系统和网络运营商可以随意选择,填写完成后点击确定。进入多协议接入后可以选择吗使用的协议创建相应的产品,我们这里所选择的是http协议,然后点击添加产品。当所有设置配置好并且连接好单片机后,点击涉笔列表中的设备的数据流就可以看见单片机传上来的数据了。点击后同样会进入设备信息界面,我们只需要填写设备名称,设备编号(随意填写数字)进入控制台后选择全部产品服务中的多协议接入。
2023-04-22 18:21:49
3885
5
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人