树莓派开发--常见问题汇总

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开发打包程序设置成开机自启,串口不能正确打开。

  原因分析:树莓派开机软件自启,串口外设初始化还没准备好,或者串口和对接的设备还没完成通讯连接。

  解决方案:

  1. 保证串口号必须正确(教训) 
  2. 在主程序所有初始化之前设置延时。再进行串口或其它外设的初始化。(我设置了12s的延时) 
  3. 更保险的做法,串口对象创建之后,可以不用马上进行串口初始化,放在主程序其它对象完成初始化后再打开串口。

截图举例:

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(没有显示器也强制启动)。

posted @ 2021-09-08 11:20  伊红美兰  阅读(450)  评论(0编辑  收藏  举报