树莓派开发--常见问题汇总
1.解决树莓派4B3.5MM耳机接口没有声音
运行树莓派配置工具:
sudo raspi config
一.选择
1 System Options Configure system settings
二.选择
S2 Audio Select audio out through HDMI or 3.5mm jack
三、在中Choose the audio output对话框中选择
1 Headphones
最后,选择Ok即可
2.树莓派qt开发打包程序设置成开机自启,串口不能正确打开。
原因分析:树莓派开机软件自启,串口外设初始化还没准备好,或者串口和对接的设备还没完成通讯连接。
解决方案:
- 保证串口号必须正确(教训)
- 在主程序所有初始化之前设置延时。再进行串口或其它外设的初始化。(我设置了12s的延时)
- 更保险的做法,串口对象创建之后,可以不用马上进行串口初始化,放在主程序其它对象完成初始化后再打开串口。
截图举例:
start::start(QWidget *parent) : QMainWindow(parent) , ui(new Ui::start) { ui->setupUi(this); MySleep(12000); //添加延时的目的是程序在开机自启时,串口外设还没准备好。 mwifi=new network(this); mtimer=new QTimer(this); jtimer=new QTimer(this); ctimer=new QTimer(this); ktimer=new QTimer(this); mcloud=new cloud(this); mcom=new mserial(this); joythread=new joy_thread(this); mSound=new QSound(""); qRegisterMetaType<xbox_map_t>("xbox_map_t"); connect(ui->action_network,&QAction::triggered,this,&start::on_mwifi_dlg); connect(ui->action_serial,&QAction::triggered,this,&start::on_mcom_dlg); connect(mtimer,&QTimer::timeout,this,&start::mTimerEvent); connect(jtimer,&QTimer::timeout,this,&start::joyCtrlEvent); connect(ctimer,&QTimer::timeout,this,&start::cloudEvent); connect(ktimer,&QTimer::timeout,this,&start::kTimerSpkAlarm); connect(joythread,&joy_thread::joyMsgSignal,this,&start::joySignalEvent); connect(mcom,&mserial::myserialMsgUpdate,this,&start::recvUSBmsg); connect(mwifi,&network::cloudCtrlSingal,this,&start::cloudCtrlFunSlot); connect(mwifi,&network::robtCtrlSignal,this,&start::robtCtrlMoveSlot); connect(mwifi,&network::setVelSignal,this,&start::setVelFunSlot); connect(mwifi,&network::rqstStateSignal,this,&start::replyStateMsgSlot); //-------------------------------------------------// connect(ui->pushbutton_front,&QPushButton::released,this,&start::robtMoveStop); connect(ui->pushbutton_back,&QPushButton::released,this,&start::robtMoveStop); connect(ui->pushbutton_left,&QPushButton::released,this,&start::robtMoveStop); connect(ui->pushbutton_right,&QPushButton::released,this,&start::robtMoveStop); connect(ui->pushbutton_ralateLeft,&QPushButton::released,this,&start::robtMoveStop); connect(ui->pushbutton_ralateRight,&QPushButton::released,this,&start::robtMoveStop); connect(ui->camera_up,&QPushButton::released,this,&start::cloudStop); connect(ui->camera_down,&QPushButton::released,this,&start::cloudStop); connect(ui->camera_left,&QPushButton::released,this,&start::cloudStop); connect(ui->camera_right,&QPushButton::released,this,&start::cloudStop); connect(ui->zoom_in,&QPushButton::released,this,&start::cloudStop); connect(ui->zoom_out,&QPushButton::released,this,&start::cloudStop); connect(mcloud,&cloud::cloudCtrlSignal,[=](QByteArray msg){mcom->mySerial->write(msg);}); memset(&Vel,0,sizeof(Vel)); mcom->mserialInit();//串口准备好了,才初始化 mtimer->start(100); jtimer->start(100); ktimer->start(10000); joythread->start(); UiStateinit(); setLedL_rgb(0,255,0); }
3.树莓派屏幕左边出现白边
解决办法:
rm -rf ~/.config/lxpanel/LXDE-pi
4. 树莓派4不接显示器不工作的如何设置?
这个是由于树莓派的系统默认设置造成的,更改一下相关配置就可以解决。
- 文件位置:
/boot/config.txt
- 修改内容:
原来的设置
# uncomment if hdmi display is not detected and composite is being output #hdmi_force_hotplug=1
将 #hdmi_force_hotplug=1 去掉注释,变成如下即可
# uncomment if hdmi display is not detected and composite is being output hdmi_force_hotplug=1
- 内容说明:
其中hdmi_force_hotplug代表强制树莓派使用HDMI端口,即使树莓派没有检测到显示器连接仍然使用HDMI端口。该值为0时允许树莓派尝试检测显示器(但是并没有启动和运行),当该值为1时,强制树莓派使用HDMI(没有显示器也强制启动)。