-
大小: 130KB文件类型: .rar金币: 2下载: 0 次发布日期: 2021-06-11
- 语言: 其他
- 标签: linux 串口 modbus-rtu
资源简介
linux下操作串口使用modbus-rtu协议读取数据,使用SPI接口操作LCD12864液晶。

代码片段和文件信息
/*
============================================================================
Name : main.c
Author : cp1300
Version :
Copyright : Your copyright notice
Description : Hello World in C Ansi-style
============================================================================
*/
#include
#include
#include
#include
#include
#include “modbus_rtu.h“
#include “SystemLog.h“
#include “UserThread.h“
#include “spi.h“
#include “gpio.h“
#include “nano_pi_spi.h“
#include
#include “JLX12864G.h“
#include “LCD12864.h“
#define TEMP_PATH “/sys/class/thermal/thermal_zone0/temp“
#define MAX_SIZE 32
#define LCD_RST_PIN_INDEX 12 //pin
#define LCD_RS_PIN_INDEX 7 //pin
SPI_HANDLE SPI_Handle;
JLX12864G_HANDLE mJLX12864G_Handle;
LCD12864_HANDLE g_LCD12864_Handle;
//写1字节数据接口
void JLX12864G_WriteData(u8 *datau8 len)
{
//写多个字节的数据到SPI设 备
writeBytesToSPI(SPI_Handle.fd data len 0 500 8);
}
//设置RS电平
void JLX12864G_SetRS(u8 level)
{
if(level) //高电平
{
setGPIOValue(LCD_RS_PIN_INDEX GPIO_HIGH); //对某个引脚输出高电平
}
else
{
setGPIOValue(LCD_RS_PIN_INDEX GPIO_LOW); //对某个引脚输出低电平
}
}
//设置RST电平
void JLX12864G_SetRST(u8 level)
{
if(level) //高电平
{
setGPIOValue(LCD_RST_PIN_INDEX GPIO_HIGH); //对某个引脚输出高电平
}
else
{
setGPIOValue(LCD_RST_PIN_INDEX GPIO_LOW); //对某个引脚输出低电平
}
}
//系统毫秒延时
void JLX12864G_DelayMS(u8 ms)
{
usleep(1000*ms);
}
//获取CPU温度
float GetCPU_Temp(void)
{
float ftemp;
int fd;
char buf[MAX_SIZE];
// 打开/sys/class/thermal/thermal_zone0/temp
fd = open(TEMP_PATH O_RDONLY);
if (fd < 0) {
fprintf(stderr “failed to open thermal_zone0/temp\n“);
return -1;
}
// 读取内容
if (read(fd buf MAX_SIZE) < 0) {
fprintf(stderr “failed to read temp\n“);
return -1;
}
// 转换为浮点数打印
ftemp = atoi(buf);// / 1000.0;
//printf(“temp: %.2f\n“ temp);
// 关闭文件
close(fd);
}
//测试线程
void *func(void *arg)
{
float ftemp = 0;
char buff[64];
SPI_Init(&SPI_Handle “/dev/spidev0.0“); //打开SPI驱动
setSPIReadBitsPerWord(SPI_Handle.fd 8); //8bit模式
setSPIBitOrder(SPI_Handle.fd MSBFIRST); //高位在前
//setSPIMaxSpeed(SPI_Handle.fd 500); //设备SPI传输速度 10K
setSPIDataMode(SPI_Handle.fd SPI_MODE0); //模式0
if(initPinGPIO(BOARD_NANOPI_M1) < 0) //初始化开发板型号
{
printf(“error:gpio init error!\r\n“);
}
exportGPIOPin(LCD_RST_PIN_INDEX); //导出IO文件 RST接口
setGPIODirection(LCD_RST_PIN_INDEX GPIO_OUT); //输出
exportGPIOPin(LCD_RS_PIN_INDEX); //导出IO文件 RS接口
setGPIODirection(LCD_RS_PIN_INDEX GPIO_OUT); //输出
//初始化JLX12864G硬件
JLX12864G_Init(&mJLX12864G_Handle JLX12864G_WriteData JLX12864G_SetRS JLX12864G_SetRST JLX12864G_DelayMS 40);
LCD12864_GRAM_Init(&g_LCD12864_Handle); //初始化虚拟LCD12864屏幕
while(1)
{
ftemp = GetCPU_Temp(); //获取CPU温度
sprintf(buff“CPU TEMP:%.02f“ftemp); //格式化字符串
LCD12864_GRAM_ShowString(&g_LCD12864_Handle 0 0 buff FONT16_COVER); //覆盖显示-将字符串在虚拟LCD12864中显示
JLX12864
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14916 2018-08-12 15:28 linux_app\.cproject
文件 787 2018-08-02 20:41 linux_app\.project
文件 73298 2018-08-12 15:35 linux_app\Debug\linux_app
文件 1305 2018-08-12 15:35 linux_app\Debug\makefile
文件 239 2018-08-12 15:35 linux_app\Debug\ob
文件 579 2018-08-12 15:35 linux_app\Debug\sources.mk
文件 191 2018-08-12 10:17 linux_app\Debug\src\Hardware\A20\A20_SPI.d
文件 195 2018-08-12 10:22 linux_app\Debug\src\Hardware\A20\common.d
文件 1116 2018-08-12 10:22 linux_app\Debug\src\Hardware\A20\subdir.mk
文件 123 2018-08-12 15:30 linux_app\Debug\src\Hardware\ASCII_8x16.d
文件 5064 2018-08-12 15:30 linux_app\Debug\src\Hardware\ASCII_8x16.o
文件 289 2018-08-12 15:30 linux_app\Debug\src\Hardware\JLX12864G.d
文件 7380 2018-08-12 15:30 linux_app\Debug\src\Hardware\JLX12864G.o
文件 323 2018-08-12 15:30 linux_app\Debug\src\Hardware\NANO_PI\common.d
文件 11576 2018-08-12 15:30 linux_app\Debug\src\Hardware\NANO_PI\common.o
文件 287 2018-08-12 15:30 linux_app\Debug\src\Hardware\NANO_PI\gpio.d
文件 8444 2018-08-12 15:30 linux_app\Debug\src\Hardware\NANO_PI\gpio.o
文件 485 2018-08-12 15:30 linux_app\Debug\src\Hardware\NANO_PI\NANO_PI_SPI.d
文件 8332 2018-08-12 15:30 linux_app\Debug\src\Hardware\NANO_PI\NANO_PI_SPI.o
文件 1358 2018-08-12 15:35 linux_app\Debug\src\Hardware\NANO_PI\subdir.mk
文件 199 2018-08-12 15:30 linux_app\Debug\src\Hardware\SPI.d
文件 3536 2018-08-12 15:30 linux_app\Debug\src\Hardware\SPI.o
文件 1346 2018-08-12 15:35 linux_app\Debug\src\Hardware\subdir.mk
文件 203 2018-08-12 15:30 linux_app\Debug\src\Hardware\Uart.d
文件 7864 2018-08-12 15:30 linux_app\Debug\src\Hardware\Uart.o
文件 1595 2018-08-12 15:35 linux_app\Debug\src\main.d
文件 9584 2018-08-12 15:35 linux_app\Debug\src\main.o
文件 351 2018-08-12 15:30 linux_app\Debug\src\Program\LCD\LCD12864.d
文件 8320 2018-08-12 15:30 linux_app\Debug\src\Program\LCD\LCD12864.o
文件 1124 2018-08-12 15:35 linux_app\Debug\src\Program\LCD\subdir.mk
............此处省略64个文件信息
- 上一篇:Isight-FD 安装说明
- 下一篇:Fanuc机器人KAREL语言参考手册
相关资源
- Modbus协议官方文档中、英文全
- 易语言OTG串口通信
- delphi 串口通讯
- STM32蓝牙和串口程序
- uboot到linux logo显示不间断 补丁
- LCD显示温度+串口接收温度.rar
- WPF USB 网络 串口 通信软件
- UNIX/LINUX编程实践教程的源码
- DELPHI与西门子200PLC的串口通信实例
- Linux任务管理器
- linux应用层的华容道游戏源代码
- Verilog FPGA UART串口控制器
- USB转串口驱动,FT232R驱动程序,最新
- PC -- 单片机的串口数据传输系统设计
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- ubuntu9.10 可加载内核模块和字符设备驱
- PC 串口调试软件
- 51单片机读取温度数据存储到SD卡中并
- MP3文件ID3v2ID3v2APEv2标签读取
- 单片机与PC机串口通讯仿真
- 串口调试助手V5.0
- 操作系统实验——虚存管理实验
- 双串口调试助手 V4.0 _ 可同时调试两个
- 读取串口数据并画实时曲线的VC 程序
- linux下的发包工具sendip
- 尚观培训linux许巍关于c 的笔记和讲义
- 尚观培训linux董亮老师关于数据结构的
- linux 线程池源码 c 版
- linux C 电梯程序练习
评论
共有 条评论