wiringPi和Sourceinsight


前言

wiringPi 使用
Sourceinsight 使用
https://www.cnblogs.com/lulipro/p/5992172.html


一、wiringPi使用

1. IO口使用

包含头文件,编译时要加wiringPi库

#include<wiringPi.h>

初始化树莓派

int wiringPiSetup (void) //成功返回0 ,失败返回-1 用此函数初始化时使用的是wPi引脚表
int wiringPiSetupGpio (void) //成功返回0 ,失败返回-1 用此函数初始化时使用的是BCM引脚表

配置引脚的IO模式

void pinMode (int pin, int mode) //pin配置的引脚
								//mode指定引脚的模式,可选:INPUT、OUTPUT、PWM_OUTPUT,GPIO_CLOCK
								//只有wPi下的1脚支持PWM,wPi下的7脚支持时钟

对配置为输出模式的引脚 输出指定电平信号

void digitalWrite (int pin, int value) //value:引脚输出的电平值。可选:HIGH,LOW

对配置为输出模式的引脚 读取其电平信号

int digitalRead (int pin) //返回引脚上的电平

时间控制函数

void delay (unsigned int howLong) //毫秒
void delayMicroseconds (unsigned int howLong) //微秒

linux下时间函数

#include <sys/time.h>
struct timeval {
               time_t      tv_sec;     /* seconds */
               suseconds_t tv_usec;    /* microseconds */
           };
int gettimeofday(struct timeval *tv, struct timezone *tz);
//tv保存当前的时间,从UTC时间1970年1月1日 00:00:00算起,达到微妙级别,tz已废弃,传入NULL即可

2.串口通信

初次使用树莓派串口,需要配置

>cd /boot/
>sudo vim cmdline.txt

删除【】之间部分

dwc_otg.lpm_enable=0 【console=ttyAMA0,115200】 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

串口通信

int serialOpen (char *device, int baud) //成功返回文件描述符fd,失败返回-1
										//device为串口地址,一般为"/dev/ttyAMA0"
										//baud:波特率
void  serialPutchar (int fd, unsigned char c) //写入一个字符	
void  serialPuts (int fd, char *s) //写入字符串
int   serialDataAvail (int fd) //缓冲区可读取的字节数
int serialGetchar (int fd)  //读取一个字符。返回读取到的字符
							//如果串口缓存中没有可用的数据,则会等待10秒,如果10后还没有,
							//返回-1,所以读取之前用serialDataAvail判断一下
#include <unistd.h>
*size_t write (int fd,const void * buf,size_t count) //发送量大时用此函数
*size_t read(int fd,void * buf ,size_t count) //接受量大时用此函数

二.Sourceinsight

  Sourceinsight 创建项目时在代码处先创建一个文件夹,然后将Sourceinsight的储存文件放到此路径下,路径不要太长,否则会闪退
  项目同步,将所有的代码都联系起来: project ->Synchronize Files
  按住ctrl,光标变为手指,查看变量函数名出现的地方
  选中代码 ctrl + / 寻找代码出现的过的地方

三.64位树莓派

换源

sudo nano /etc/apt/sources.list

文件中内容替换为

deb https://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian bullseye main contrib non-free
deb https://mirrors.ustc.edu.cn/debian/ bullseye-updates main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian bullseye-updates main contrib non-free
deb https://mirrors.ustc.edu.cn/debian-security bullseye-security main contrib non-free
# deb-src http://mirrors.ustc.edu.cn/debian-security/ bullseye-security main non-free contrib

安装wiring库

$ cd ~ 不一定在home下,其他地方也可以
$ git clone https://github.com/WiringPi/WiringPi.git
$ ./build
//即可以以源码的方式安装

总结

1.查看树莓派引脚,终端输入(安装wiringPi库之后)

gpio readall

安装是否成功

gpio -v

2.gcc和cc:
  cc是Unix的C编译器,全程为c compiler,而gcc为Linux的,全称为GNU compiler collection,是一个编译器集合,既可以编译c也可以编译c++。
  在Linux里面,cc最终会指向gcc,两者是一样的。
gcc和g++:
  后缀为.c的,gcc把它当作是C程序,而g++当作是c++程序;后缀为.cpp的,两者都会认为是c++程序。
  两者都可以编译c和c++代码。gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接,为了统一起见,干脆编译/链接统统用g++了。

3.vim自动对齐:命令行模式下:gg(光标移动到首位) = G

4.apt和apt-get区别:
apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合,推荐使用 apt。

5.单双工,半双工,全双工:
单双共:单工数据传输只支持数据在一个方向上传输,不能实现双方的通信
半双工:单工数据传输只支持 数据在一个方向上传输,但在同一时刻,只允许数据在一个方向上传输
全双工:允许数据同时在两个方向上传输

6.串口通信两大因素:数据格式,包括数据位,停止位,奇偶校验位;波特率

7.find查找文件:

> find ~ -name 'demo1.c'

8.宏定义

#define TEST	//宏定义后什么都不加,表示定义了一个标识符,用于开启后续的条件编译

#ifdef TEST //条件编译
#endif

//宏的一些特殊用法
#define Conn(x,y) x##y //int a=Conn(12,34); a = 1234
#define ToChar(x) #@x //char b=ToChar(a);b = 'a'
#define ToString(x) #x //char* str = ToString(1234);str = "1234"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值