目录
一、下载、安装树莓派系统以及wifi配置和SSH连接
1. 下载镜像文件。
如果要下载WiringPi库的话,推荐32位的镜像文件,不然与WiringPi库不兼容!!!这里是我踩的第一个坑!不下载的话就使用64位的。
镜像文件可以去官网下载,也可以使用下面的软件自行选择系统!
2. 格式化TF卡。
首次安装系统时,将卡插入读卡器并插入电脑,格式化TF卡。
如果已经安装系统,想重新安装的话,也要格式化!!
此处:格式化TF卡软件下载地址!
3. 下载镜像写入软件。
4. 将格式化的读卡器插入电脑中。向TF卡中写入镜像文件
5. 写入完成后,将TF卡插入树莓派中。
6. 打开设置的热点(热点的账号密码要与上面设置wifi的一致),重启树莓派。
7. 稍等一会,如果热点没有被连接,则关掉热点,重新打开一下。
8. 通过SSH进行连接树莓派。
如果要通过SSH远程连接树莓派需要主机和树莓派处于同一网络中。
补充:另外几种连接热点的方式。
1、有显示屏,无网线
将树莓派插上电源,并与显示器相连接。通过界面操作连接电脑热点。连接到热点后,获取树莓派的ip地址。
2、无显示屏,无网线
(1)将下载有树莓派系统的TF卡插入读卡器中,并插入电脑。
(2)打开其卡盘后,建立两个文件。一个名为:ssh
另一个名为:wpa_supplicant.conf
在wpa_supplicant.conf
文件中输入下面的内容:
country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="你的WiFi名"
psk="WiFi的密码"
key_mgmt=WPA-PSK
priority=1
}
(3)退出TF卡,将其插入树莓派,并重新启动树莓派即可。
(4)主机可以打开热点,树莓派连接热点后,主机可以通过查看wifi连接设备的ip地址,通过ip地址就可以远程SSH连接树莓派了。
二、连接VNC显示。
-
打开树莓派的VNC功能
命令行输入:sudo raspi-config
-
重启树莓派
输入:sudo reboot
-
进行连接VNC。
-
若出现错误 “No configured security type is supported by 3.3 viewer“
则在输入:sudo nano /etc/vnc/config.d/common.custom
添加以下内容:
# no encryption
SecurityTypes=None
-
添加完成后输入:
sudo systemctl restart vncserver-x11-serviced.service
-
重新进行连接VNC即可!
三、wiringPi库的下载与代码编译
- 使用SSH远程连接树莓派。
- 安装wiringPi库。
cd /tmp
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
- 通过
gpio -v
查看是否安装成功。下图为安装成功。
- 可以写代码进行编译与实现了。使用wiringPi库时,在生成可执行代码时,后面需要加上
-l
进行软连接wiringPi库。
gcc 2.c -o 2 -lwiringPi
附录:2.c完整代码。
#include "stdio.h"
#include <wiringPi.h>
#include <softPwm.h>
#define uchar unsigned char
#define makerobo_Led_PinRed 0
#define mekerobo_Led_PinGreen 1
void led_init(void)
{
softPwmCreate(makerobo_Led_PinRed,0,100);
softPwmCreate(mekerobo_Led_PinGreen,0,100);
}
void led_pwm(uchar r_val,uchar g_val)
{
softPwmWrite(makerobo_Led_PinRed,r_val);
softPwmWrite(mekerobo_Led_PinGreen,g_val);
}
int main(void)
{
wiringPiSetup ();
if( wiringPiSetup()==-1)
{
printf("failed!");
return 1;
}
led_init();
while(1)
{
led_pwm(0xff,0x00);
delay(500);
led_pwm(0x00,0xff);
delay(500);
led_pwm(0xff,0x45);
delay(500);
led_pwm(0xff,0xff);
delay(500);
}
return 0;
}