小编tes*_*123的帖子

R中的部分动物串匹配

我有一个数据帧,

d<-data.frame(name=c("brown cat", "blue cat", "big lion", "tall tiger",
                     "black panther", "short cat", "red bird",
                     "short bird stuffed", "big eagle", "bad sparrow",
                     "dog fish", "head dog", "brown yorkie",
                     "lab short bulldog"), label=1:14)
Run Code Online (Sandbox Code Playgroud)

我想搜索name专栏,如果出现"cat","lion","tiger"和"panther"这两个字,我想将字符串分配给feline新列和相应的行species.

如果"bird", "eagle", and "sparrow"出现单词,我想将字符串分配给avian新列和相应的行species.

如果出现"dog","yorkie"和"bulldog"字样,我想将字符串分配给canine新列和相应的行species.

理想情况下,我将它存储在一个列表或类似的东西中,我可以保留在脚本的开头,因为当物种的新变种出现在名称类别中时,可以轻松访问更新符合条件的内容为feline,aviancanine.

这里几乎已经回答了这个问题(如何根据R中其他列的部分字符串匹配在数据框中创建新列),但它没有解决此问题中存在的多个名称扭曲.

string r matching dataframe

16
推荐指数
1
解决办法
3万
查看次数

如何在R中使用%.%运算符(EDIT:2014年弃用运算符)

编辑:%.%运算符现已弃用.使用magrittr中的%>%.

原始问题这个%.%操作员做什么?我已经看到它在dplyr包中使用了很多,但似乎找不到任何有关它是什么或如何工作的支持文档.

它似乎将命令链接在一起,但据我所知......当我在它时,任何人都可以解释那些挂在%标志上的特殊操作员的开局是什么以及何时在技术上是时候到了用它们代码更好?

r special-characters dplyr

15
推荐指数
1
解决办法
1万
查看次数

如何使用 OpenOCD 同时与两块 STM32 板通信?

假设我有两个 STM32,并且我在这里使用这个编程器。

我想连接到它们两个并独立调试/刷新/迭代。

所以,我的设置如下:

硬件

PC |-> USB1 -> ST-LINK-Programmer1 -> STM32_Board1 |-> USB2 -> ST-LINK-Programmer2 -> STM32_Board2

SW

我通常用一块板来做这件事的方法非常简单。

openocd -f config.cfg

这是我调用的配置文件:

source [find interface/stlink-v2.cfg] transport select hla_swd source [find target/stm32f4x.cfg] reset_config none

然后,在另一个终端中,我像这样调用arm-gdb:

arm-none-eabi-gdb build/FW.elf

在 ~/.gdbinit 中,我有这一行:

target remote localhost:3333

什么不起作用

这是非常明显的...我为第一个 OpenOCD 使用端口 3333,但第二个实例尝试使用相同的端口并失败

Error: couldn't bind tcl to socket: Address already in use

我尝试过的

我已经查看了此处的文档,但我无法了解如何在我的config.cfg文件中调用这些选项。

我还尝试将有关 tcl_port 和 gdb_port 的这些命令添加到实际的命令行参数中,例如 openocd -f config.cfg -c tcl_port 4444,但这也不起作用......套接字仍在使用中。

我真正的问题

这样做的正确方法是什么?配置 …

debugging gdb arm stm32 openocd

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

Python按索引选择列表中的元素

我在 python 中有一个列表,我想从中获取一组索引并将其保存为原始列表的子集:

templist = [[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]]
Run Code Online (Sandbox Code Playgroud)

我想要这个:

   sublist=[[1,    4,    7,                      16,      19,20]]
Run Code Online (Sandbox Code Playgroud)

举个例子。

我无法提前知道列表元素的内容是什么。我所拥有的只是始终相同的索引。

有没有单行方式来做到这一点?

python indexing list set

2
推荐指数
2
解决办法
8593
查看次数

如何将项目从一个 STMFx 系列移植到同一系列中的另一个

总的来说,我对 MCU 的 ST 系列的语言/行话/术语有点困惑,我认为这阻碍了我的进步。

一点背景:我是一名 EE,通过使用 AVR 平台的大学必修课程了解了我对 FW 的所有了解。喜欢它,非常简单且易于使用。快速浏览一下,通过独一无二的数据表,并一鼓作气你抽象掉!宏的、磅定义等...就是这么简单!你编写一个main.c和一个 Makefile,编译并用 avr-dude 启动......生活是美好的。

然后,我走进了STM32 ARM内核的脱粒机,天啊……STDPerifieral Libraries、HAL层、CubeMX、程序集启动文件、CMSIS、IDE特定项目文件,还有十几种不同类型的只是STM32F4.. .我已经快不知所措了!

我真正的问题是我有这个 STM32F411 探索板,我需要运行一个 20x4 字符 LCD。我在 github 等上找到了几个看起来不错的项目:

https://stm32f4-discovery.net/2014/06/library-16-interface-hd44780-lcd-controller-with-stm32f4/

https://github.com/EarToEarOak​​/STM32F4-HD44780

https://github.com/6thimage/hd44780

https://github.com/mirkoggl/STM32F4_LiquidCrystal

但是,我无法弄清楚如何正确编译其中的任何一个。我一直在使用 CubeMx 来生成 Makefile 作为起点,主要是因为它制作了一个链接器脚本和我显然需要的 .s 文件,但我完全没有经验或想法如何自己做到这一点。这就是我对 CubeMX 的依赖。

我认为我的大部分问题是,通过尝试将 CubeMX 生成的 MCU 特定代码和各种在线项目代码粘合在一起,我遇到了很多冲突......在线项目正在调用一些 .h 文件或引用某些东西Makefile 找不到,这就是事情出轨的地方......例如,其中一些项目正在调用该stm32f4xx.h文件,但 CubeMX 并未将其包含在其生成的代码中。

我不得不去系统中的其他地方并将该文件复制到文件./Inc夹中,但这似乎真的倒退了......而且,它仍然没有构建。

如果我要在这里保持头脑清醒,我需要一个 AVR 到 STM32 12 步康复程序或其他东西......

所以,最大的问题是:

你们如何从第一个项目开始git clone xxxx并构建它以在 STM32F411 探索板上运行,arm-none-eabi并且仅使用Makefiles...不允许 IDE。

并且,开发 8 位 AVR 和 …

porting arm makefile stm32 stm32f4discovery

2
推荐指数
1
解决办法
1692
查看次数

PWM DMA 到整个 GPIO

我有一个 STM32F4,我想对一个已与掩码进行“或”运算的 GPIO 端口进行 PWM 处理。

因此,也许我们想要以0b00100010200khz 进行一段时间的 PWM,但是,10khz 后,我们现在想要进行 PWM 0b00010001...然后,10kHz 后,我们想要在同一 GPIO 上对其他一些掩码进行 PWM。

我的问题是,如何使用 DMA 做到这一点?我正在尝试触发一个 DMA 传输,该传输将在上升沿设置所有位,然后触发另一个 DMA 传输,该传输将在下降沿清除所有位。

我还没有找到一个好的方法来做到这一点(至少使用 CubeMX 以及我对 C 和 STM32 的有限经验),因为看起来我只有机会在上升沿做一些事情。

我主要关心的问题之一是 CPU 时间,因为尽管我在上面的示例中提到了数百千赫兹,但我想让这个框架非常强大,因为它不会浪费 CPU 资源。这就是为什么我喜欢 DMA 的想法,因为它是专用硬件,可以无意识地将这里的一个单词提升到那里的一个单词之类的东西,而 CPU 可以做其他事情,比如处理 PID 的数字或其他东西。

编辑 为了清楚起见:我有一组 6 个值,可以写入 GPIO。它们存储在一个数组中。我想要做的是设置一个 PWM 定时器来在 PWM 的正宽度期间设置 GPIO,然后我希望在低周期宽度期间将 GPIO 设置为 0b00000000(如果 pwm. 因此,我需要查看上升沿何时,快速写入GPIO,然后查看下降沿何时,并向GPIO写入0。

arm stm32 dma gpio pwm

2
推荐指数
1
解决办法
4747
查看次数

如何将这个结构元素评估为没有parantheses的函数?

我正在查看其他人的代码库,我看到了这个函数原型:

void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr );
Run Code Online (Sandbox Code Playgroud)

它的定义如下:

void OnRxDone( uint8_t *payload, uint16_t size, int16_t rssi, int8_t snr )
{
    Radio.Sleep( );
    BufferSize = size;
    memcpy( Buffer, payload, BufferSize );
    RssiValue = rssi;
    SnrValue = snr;
    State = RX;
}
Run Code Online (Sandbox Code Playgroud)

但是,稍后在超循环中调用它,main如下所示:

RadioEvents.RxDone = OnRxDone;

这究竟是怎么合法的?该函数期待一个字符指针和三个整数,但它没有任何东西,这很好.这里发生了什么?

c function

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

在Dictionary中附加类似的键

我有一个字典,看起来像这样:

x={'a':"a",'b':"b"}
Run Code Online (Sandbox Code Playgroud)

y={'a':"c",'b':"d"}
Run Code Online (Sandbox Code Playgroud)

我要这个:

z={'a':"ac",'b':"bd"}
Run Code Online (Sandbox Code Playgroud)

我如何用Python做到这一点?

python dictionary append

0
推荐指数
1
解决办法
90
查看次数