• 大小: 130KB
    文件类型: .rar
    金币: 1
    下载: 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\objects.mk

     文件        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个文件信息

评论

共有 条评论