0%

🌟 引言

嘿,小伙伴们!今天我们要来聊聊SQLite,一个超轻量级的嵌入式数据库,它不需要独立的服务器进程,也不需要安装任何东西,只需要将SQLite的DLL文件添加到项目中即可开始使用。SQLite非常适合用于小型应用程序,尤其是那些需要在客户端存储数据的应用程序。今天,我们就一起来看看如何在C#中使用SQLite吧!🌟

📚 背景知识

SQLite是一个跨平台的数据库,它可以运行在Windows、Linux、Mac OS X等多个操作系统上。它支持SQL语言标准,并且具有事务处理、触发器等功能。SQLite非常适合那些需要简单数据存储的应用程序,比如桌面应用、移动应用等。💡

🛠️ 准备工作

在开始之前,我们需要准备以下内容:

1
2
安装SQLite:下载SQLite的预编译二进制文件,并将其添加到项目的引用中。
安装NuGet包:使用NuGet包管理器安装System.Data.SQLite。

接下来,让我们一步步来看如何在C#中使用SQLite。🛠️

阅读全文 »

一、协议的定义

要对某种协议进行编解码操作,就必须知道协议的基本定义,首先我们来看一下 CJ/T188 的数据帧定义(协议定义),了解请求数据与响应数据的基本结构。

1.1 CJ/T188 水表通讯协议

请求帧:

字节 描述
0 0x68 数据帧开始标识。
1 T 表计类型代码,详细信息请参考 表计类型表
2-8 A0-A6 表计地址,水表设备的具体地址,这里是 BCD 形式。
9 CTR_01 协议控制码,例如 0x1 就是读表数据。
10 0x3 数据域长度。
11-12 0x1F,0x90 数据标识 DI0-DI1。
13 0x00 序列号,一般为 0x00,序列号也被作为整个数据域的长度。
14 CS 表示校验和数据,即 0-13 位置的所有字节的累加和。
15 0x16 数据帧的结束标识。

例如有以下请求帧数据(读取水表数据):

阅读全文 »

一、概述
MT7688硬件自带两个SPI的CS,其中一个用于flash,可用就只有一个。在实际应用中可能会连接多个SPI设备,显然一个CS是不够用的。内核中虽然实现了SPI bitbang的master使用gpio模拟spi,但性能无法与cpu的spi控制器相比。本文目的在于使用GPIO扩展spi的CS,其他spi控制线共用。网上也有很多博文实现GPIO扩展SPI CS的,但实际操作中总会有些问题,本文方法亲测是可以的。

二、软件环境

  • linux发行版:ubuntu 14.04LTS
  • Openwrt版本:15.05.1
  • 硬件:MT7688A

三、配置过程

阅读全文 »

ubuntu高版本安装低版本gcc
试了网上的切换源或从源码下载,不成功。
最后成功安装的方法:

1
2
3
4
5
6
7
8
9
10
11
12
cd Desktop/
mkdir install_g++-4.8
cd install_g++-4.8/
sudo apt update
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/g++-4.8_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/libstdc++-4.8-dev_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/gcc-4.8-base_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/gcc-4.8_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/libgcc-4.8-dev_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/cpp-4.8_4.8.5-4ubuntu8_amd64.deb
wget http://mirrors.kernel.org/ubuntu/pool/universe/g/gcc-4.8/libasan0_4.8.5-4ubuntu8_amd64.deb
sudo apt install ./gcc-4.8_4.8.5-4ubuntu8_amd64.deb ./gcc-4.8-base_4.8.5-4ubuntu8_amd64.deb ./libstdc++-4.8-dev_4.8.5-4ubuntu8_amd64.deb ./cpp-4.8_4.8.5-4ubuntu8_amd64.deb ./libgcc-4.8-dev_4.8.5-4ubuntu8_amd64.deb ./libasan0_4.8.5-4ubuntu8_amd64.deb ./g++-4.8_4.8.5-4ubuntu8_amd64.deb

假如我们的ubuntu下安装了多个版本,有时候,我们需要旧的gcc g++版本,这时,就涉及到版本的切换,我们首先对多个版本设置不同的优先级,使用工具如下:

<1> 可以通过如下命令查看当前安装的版本:

1
2
ll /usr/bin/gcc*
ll /usr/bin/g++*

<2> 安装gcc-4.8 和gcc-5:

1
2
sudo apt install gcc-4.8 gcc-4.8-multilib g++-4.8 g++-4.8-multilib
sudo apt install gcc-5 gcc-5--multilib g++-5 g++-5--multilib
阅读全文 »

1. 概述

以往总是通过串口打印log,但经常因资源限制,无法打印。最近接触到J-Link RTT Viewer,本文目的是记录下使用方法(只需要把J-Link安装目录下的源文件,添加到自己的工程就可以了)。
参考连接:【嵌入式小技巧】STM32 实现 SEGGER RTT 打印(超详细),根据博客自己操作了下。

2. 找到驱动文件

阅读全文 »