-
大小: 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\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语言参考手册
相关资源
- PSoc4串口收(中断)发
- 嵌入式Linux应用系统开发精讲源码
- 深入理解计算机系统原书第三版超高
- linux下基于V4L2/Qt的usb摄像头采集显示
- 串口通讯+modbus通讯协议
- linux下哲学家就餐问题大作业
- Verilog HDL编写的FPGA RS232串口发送代码
- linux下c (一个简单的sniffer工具)
- usb2.0-serial驱动
- 微机原理与接口技术综合实验报告
- linux下使用IIC总线读写EEPROM
- linux 目录树实现代码递归
- Linux下基于原始套接字的嗅探器
- 详细介绍linux下移植wifi的步骤
- 串口两线转一线原理图
- PIC串口发送接收多字节
- linux环境rtmp推流
- 为LINUX 设计一个简单的二级文件系统
- Linux引导删除工具(mbrfix)
- PIC 单片机软件模拟串口
- 串口通信 控制tdc-gpx芯片
- mini6410 所有应用程序源码
- PortMon串口监听工具和中文使用说明文
- 基于LABView上位机 自动保存数据
- linpop neusoft
- UART Verilog (串口通信Verilog HDL代码)
- usart hmi的串口驱动,测试单片机为S
- qt串口通信,实现发送和接收
- Linux下包过滤防火墙的设计与实现
- Linux下网络传输实现Reliable Data Transp
评论
共有 条评论