-
大小: 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語言參考手冊
評論
共有 條評論