小编Arj*_*jan的帖子

问号Typescript变量

我看过如下代码片段:

export interface IUser {
    email?: string;
    firstName?: string;
    lastName?: string;
}
Run Code Online (Sandbox Code Playgroud)

但是,为什么在变量名后加问号呢?此代码段是将Mongodb与Typescript结合使用的示例的一部分。

答案可能在某处,但由于找不到,我似乎使用了错误的关键字。

mongodb typescript typescript2.0

7
推荐指数
1
解决办法
3748
查看次数

STM32 裸机 C - 无法让 LED 工作

因此,我目前正在学习 STM32 微处理器课程,但是,我似乎连最基本的事情都失败了:打开 LED。完整的代码位于这篇文章的底部。

重要的:

  • 硬件运行正常。
  • 我使用的是STM32L432KC。

首先,我们要弄清楚内置LED在哪个引脚上。根据制造商手册,LED 应位于引脚 D13 (PB3) 上。 在此输入图像描述


好的,我们正在寻找 PB3。根据 STM32L432KC 的数据表,PB3 位于 B 端口,因此连接到高性能总线,如下图所示。 在此输入图像描述


凉爽的。所以我们的总线是 AHB2,我们正在使用 GPIOB。现在我们必须使用 RCC_AHB3ENR 寄存器启用该总线上的时钟。现在,这是我可能会犯错误的部分(否则这篇文章就不会存在),所以请密切注意。如果我理解正确,我希望将位 1 设置为 1,因为这表示“GPIOBEN”设置为“IO 端口 B 时钟启用”。 在此输入图像描述 在此输入图像描述

这让我相信我应该按如下方式设置总线寄存器:

RCC->AHB2ENR |= 0x2;
Run Code Online (Sandbox Code Playgroud)

接下来我必须将 GPIO 引脚的模式设置为输出。根据课程和我的文档,这是使用 GPIOx_MODER 完成的。 在此输入图像描述

这让我相信我应该按如下方式设置 GPIO 模式:

GPIOB->MODER |= 0x40;
Run Code Online (Sandbox Code Playgroud)

最后但并非最不重要的一点是,要打开实际的 LED,我们必须设置输出数据寄存器,即 GPIOx_ODR。 在此输入图像描述

这让我相信我应该将数据设置如下:

GPIOB->ODR = 0x8;
Run Code Online (Sandbox Code Playgroud)

我不确定我哪里出了问题,但这是我第一次在如此深入的层面上使用寄存器。我一定忽略了一些事情,但我尝试了多个例子但没有成功。感谢所有帮助。这是完整的代码:

// PB3 - User LED
// RCC->AHB2ENR
// GPIOx_MODER
// GPIOx_ODR

#include "stm32l4xx.h"

int main(void)
{
    RCC->AHB2ENR |= 0x2;
    GPIOB->MODER |= 0x40;

    while(1)
    {
        GPIOB->ODR = 0x8; …
Run Code Online (Sandbox Code Playgroud)

c embedded microcontroller arm microprocessors

5
推荐指数
1
解决办法
1526
查看次数

Gstreamer H264 UDP -> WebRTC 重新流媒体

我有一台 Ricoh THETA Z1 360 度相机,可输出 4K 360 度视频流。我正在使用他们自己的libuvc-theta-sample来检索视频流并将其输入 Gstreamer。我使用以下管道将视频流接收到网络上的另一台机器,该机器运行 Gstreamer 应用程序,将 udpsrc 重新流式传输到 webrtcbin 中:

appsrc name=ap ! queue max-size-buffers=1 leaky=downstream ! h264parse ! rtph264pay ! udpsink host=192.168.1.137 port=1935 qos=false sync=false
Run Code Online (Sandbox Code Playgroud)

在我的接收端,这工作得很好: 在此输入图像描述

正如您所看到的,我正在使用 WebRTC bin 将视频发送到 WebRTC 浏览器客户端。

只要我在 localhost 上,这一切都会按预期工作。如果我尝试从网络中的另一台机器访问视频流,ICE 和 SDP 提供的效果非常好,WebRTC 连接已建立,但没有视频显示。如果我用一个对 H264 流进行支付、解码和重新编码的管道替换我的管道,它就可以完美地工作。显然,这不是我想要的,因为我正在失去(显着)视频质量,并且重新编码需要时间。

以下日志可能有助于发现问题,该日志在我的控制台中被发送为垃圾邮件。当我从本地主机查看流时,此日志不会出现,但当尝试从网络中的另一台计算机查看流时,它会出现。

0:00:07.248383000 22700 00000139F5F3E340 INFO h264parse gsth264parse.c:3741:gst_h264_parse_src_event:收到上游强制键单元事件,seqnum 253 running_time 99:99:99.999999999 all_headers 0 计数 0 0:00:07.559580000 22700 00000139F5F3E340 信息 h264parse gsth264parse.c :3741:gst_h264_parse_src_event:收到上游强制键单元事件,seqnum 254 running_time 99:99:99.999999999 all_headers 0 count 0 0:00:07.854883000 …

c c++ gstreamer h.264 webrtc

5
推荐指数
1
解决办法
2142
查看次数