<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/liyangtheking</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; liyangtheking]]></copyright><item><title><![CDATA[32.768Khz晶振作为RTC时钟源]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/128569415</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/128569415</guid><author>liyangtheking</author><pubDate>Thu, 05 Jan 2023 19:59:42 +0800</pubDate><description><![CDATA[RTC]]></description><category></category></item><item><title><![CDATA[UWB Preamble]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/128561460</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/128561460</guid><author>liyangtheking</author><pubDate>Thu, 05 Jan 2023 12:51:22 +0800</pubDate><description><![CDATA[Each preamble code is a sequence of pulses representing -1, 0, and +1. The preamble code is spread to
construct a preamble symbol, and this preamble symbol is then repeated to constitute the SYNC field portion
of the SHR as shown in the example in Figure 2]]></description><category></category></item><item><title><![CDATA[三极管进入饱和区]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/128560355</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/128560355</guid><author>liyangtheking</author><pubDate>Thu, 05 Jan 2023 11:32:29 +0800</pubDate><description><![CDATA[As VIN increases, the base current increases and therefore so does the collector current. Eventually, the collector resistor RC will drop so much voltage that the BC junction will begin to enter the forward-bias region.When both the BE junction and the BC ]]></description><category></category></item><item><title><![CDATA[Dart可变参数，命名参数]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/125019094</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/125019094</guid><author>liyangtheking</author><pubDate>Sat, 28 May 2022 15:45:08 +0800</pubDate><description><![CDATA[void main() {
  for (int i = 0; i &lt; 5; i++) {
    print('hello ${i + 1}');
  }
  show_info("Tom");
  show_info("Lucy", 20);
  show_info2("Cat");
  show_info2("Mouse", age:10, sex:'femail');
}

void show_info(String name, [int? age]) {
  if (age != null.]]></description><category></category></item><item><title><![CDATA[Python画轨迹图]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/124494020</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/124494020</guid><author>liyangtheking</author><pubDate>Fri, 29 Apr 2022 13:32:52 +0800</pubDate><description><![CDATA[import cmath
import re
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import math
from matplotlib.animation import FuncAnimation

distance = 0
azimuth = 0

x_axis = []
y_axis = []

aoa_loc_data = []

index = 0

def create_csv(file_.]]></description><category></category></item><item><title><![CDATA[Arduino Esp32环境搭建（手动下载相关文件）]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/124119199</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/124119199</guid><author>liyangtheking</author><pubDate>Tue, 12 Apr 2022 11:05:56 +0800</pubDate><description><![CDATA[这段时间想着arduino上面有很多例子和模块，编程很方便，自带编译器，操作方便。于是想用这个东西编译一下esp32，但是在配置环境时候各种碰壁，各种下载，最终也没有安装上，好像网上的教程都是在国外写的一样，github东西随便下，也不见有人讲一下下载失败怎么办，也没有国内镜像的教程，最终我通过自己的方式，不用网上的教程，只是用国内能用的软件和能访问的软件配置到了环境，在这里记录一下，也写下来给那些需要的人。

我的版本是在esp32 1.0.6版本的时候做的，如果后期版本升级这个方法同样适用。

首先，.]]></description><category></category></item><item><title><![CDATA[C++正则表达式 2]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123938873</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123938873</guid><author>liyangtheking</author><pubDate>Sun, 03 Apr 2022 15:49:34 +0800</pubDate><description><![CDATA[C++正则表达式

若要判断一个输入的QQ号是否有效，你会如何处呢？

首先你得分析一下其对应规则，依次列出：

长度大于5，小于等于11；
	首位不能为0；
	是否为纯数字？
规则既列，接着就该尝试实现了，那么用什么来表示字符串呢？在C++中，最容易想到的就是string了，其中提供了许多成员函数可以处理字符串，所以有了如下实现：


std::string qq;
std::cin &gt;&gt; qq;

// 1. 判断位数是否合法
if (qq.length() &gt;= 5 &amp;&a.]]></description><category></category></item><item><title><![CDATA[C++正则表达式]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123938626</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123938626</guid><author>liyangtheking</author><pubDate>Sun, 03 Apr 2022 15:38:26 +0800</pubDate><description><![CDATA[C++正则表达式

正则表达式在文本的查找和替换方面十分强大，最近恰巧用到，记录如下。

使用的语言是C++，需要包含regex头文件，下面的代码是对linux系统路径的判别，我们假定路径都是下面这样的：

./abcd
	../abcd
	/abcd/efg

#include &lt;stdio.h&gt;
​
#include &lt;string&gt;
#include &lt;regex&gt;
#include &lt;exception&gt;
#include &lt;iostream&g]]></description><category></category></item><item><title><![CDATA[matplotlib subplot]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123898207</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123898207</guid><author>liyangtheking</author><pubDate>Fri, 01 Apr 2022 14:57:00 +0800</pubDate><description><![CDATA[import matplotlib.pyplot as plt
import numpy as np

x = np.array([0, 1, 2, 3])
y = np.array([3, 8, 1, 10])

#plt.subplot(2,3, 1)
plt.subplot(231)
plt.plot(x,y)

x = np.array([0, 1, 2, 3])
y = np.array([10, 20, 30, 40])

#plt.subplot(2,3,2)
plt.subplot(232.]]></description><category></category></item><item><title><![CDATA[Ozone调试]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123736483</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123736483</guid><author>liyangtheking</author><pubDate>Fri, 25 Mar 2022 15:14:42 +0800</pubDate><description><![CDATA[SEGGER Ozone调试器使用攻略！
]]></description><category></category></item><item><title><![CDATA[PyQT5使用Qt Creator创建ui]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123612674</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123612674</guid><author>liyangtheking</author><pubDate>Sun, 20 Mar 2022 14:31:07 +0800</pubDate><description><![CDATA[1、使用Qt Creator创建ui文件

2、将ui文件转换为py文件


pyuic5 -o mainwindow.py mainwindow.ui

3、引用刚才生成的py文件


import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from mainwindow import *

class MyWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, pare]]></description><category></category></item><item><title><![CDATA[Pyhton中bytearray与string相互转换]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123574492</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123574492</guid><author>liyangtheking</author><pubDate>Fri, 18 Mar 2022 14:42:51 +0800</pubDate><description><![CDATA[#按string来显示,byarray代表接收到的数据
readstr = byarray.decode('utf-8')#这样就直接转换成str格式
 
#强制转换
readstr = str(byarray)#用这种方式得到的数据会带有b''字符
 
#将读取的数据按十六进制字符显示，能让我们直接看到最底层的数据格式
readstr = ' '.join(hex(x) for x in byarray)#这句能把byarray里的数据遍历一遍转换成hex格式，而且用空格相连


...]]></description><category></category></item><item><title><![CDATA[在Python中打印函数名和行号]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123563923</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123563923</guid><author>liyangtheking</author><pubDate>Thu, 17 Mar 2022 23:52:08 +0800</pubDate><description><![CDATA[def gid_uci_core_group_handler(oid, payload_len, payload):
    print(sys._getframe().f_code.co_name)
    print(sys._getframe().f_lineno)
    pass


]]></description><category></category></item><item><title><![CDATA[Python16进制数组处理]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123554736</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123554736</guid><author>liyangtheking</author><pubDate>Thu, 17 Mar 2022 16:53:43 +0800</pubDate><description><![CDATA[hex_string = "11 22 33 44"
hex_data = bytearray.fromhex(hex_string)
print(hex_data)
print(len(hex_data))

def print_hex(bytes):
    l = [hex(int(i)) for i in bytes]
    print(" ".join(l))

print_hex(hex_data)

def print_bytes_hex(data):
    l = ['%02X' % .]]></description><category></category></item><item><title><![CDATA[PyQt QSS实例]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123548683</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123548683</guid><author>liyangtheking</author><pubDate>Thu, 17 Mar 2022 14:12:28 +0800</pubDate><description><![CDATA[from PyQt5.QtWidgets import *
import sys


class WindowDemo(QWidget):
    def __init__(self):
        super().__init__()

        btn1 = QPushButton(self)
        btn1.setText('按钮1')

        btn2 = QPushButton(self)
        btn2.setProperty('name', 'myBt.]]></description><category></category></item><item><title><![CDATA[PyQT信号与槽]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123548028</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123548028</guid><author>liyangtheking</author><pubDate>Thu, 17 Mar 2022 13:27:59 +0800</pubDate><description><![CDATA[import sys
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import (QWidget, QLCDNumber, QSlider,QGridLayout,QLabel,QHBoxLayout, QGroupBox,
    QVBoxLayout, QApplication,QProgressBar,QPushButton,QMessageBox)
 
 
class SignalSlot(QWidget):
 
    def __init.]]></description><category></category></item><item><title><![CDATA[PyQt5打包]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123538339</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123538339</guid><author>liyangtheking</author><pubDate>Wed, 16 Mar 2022 22:23:36 +0800</pubDate><description><![CDATA[打包后的程序显示dos console窗口 
pyinstaller -F run.py

打包后的程序隐藏dos console窗口
pyinstaller -Fw run.py


]]></description><category></category></item><item><title><![CDATA[PyQT]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123469373</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123469373</guid><author>liyangtheking</author><pubDate>Mon, 14 Mar 2022 00:04:14 +0800</pubDate><description><![CDATA[from PyQt5.Qt import *
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle("QLineEdit..")
        self.resize(500, 400)
        self.setup_ui()
    def setup_ui(self):
        ql_a = QLineEdit(.]]></description><category></category></item><item><title><![CDATA[UWB双边双向测距公式推导]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123415342</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123415342</guid><author>liyangtheking</author><pubDate>Fri, 11 Mar 2022 01:12:02 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[学习UWB必须弄清楚的地方]]></title><link>https://blog.youkuaiyun.com/liyangtheking/article/details/123302268</link><guid>https://blog.youkuaiyun.com/liyangtheking/article/details/123302268</guid><author>liyangtheking</author><pubDate>Sat, 05 Mar 2022 22:12:09 +0800</pubDate><description><![CDATA[1、UWB貌似支持跳频，那它的跳频逻辑是怎样的？

2、一个Anchor如何associate多个Tags?

3、在Anchor和Tag能够通信前，需要协商的内容有哪些？

Channel, Preamble长度，数据速率，SFD,PHR, STS, TRX interval, TRX windwow etc.

4、关联成功后，Anchor和Tag之间数据通信方式是怎样的，BLE中是Master发起数据交互，UWB呢？

5、一个Anchor对应多个Tags，如何避免相互之间的干扰？如果多个Tags同时]]></description><category></category></item></channel></rss>