我正在创建一个 Spring Boot 应用程序,并且正在使用 Intellij 的嵌入式 h2 数据库。
我在 application.properties 文件中添加了以下几行:
spring.datasource.url=jdbc:h2:~/testdb;MV_STORE=false;AUTO_SERVER=TRUE
Run Code Online (Sandbox Code Playgroud)
尽管连接成功并且我可以使用 Intellij 的查询控制台查询数据库,但这些表不会出现在“数据库”选项卡中。
Succeeded
DBMS: H2 (ver. 2.1.210 (2022-01-17))
Case sensitivity: plain=upper, delimited=exact
Driver: H2 JDBC Driver (ver. 2.1.210 (2022-01-17), JDBC4.2)
Ping: 16 ms
Run Code Online (Sandbox Code Playgroud)
当我刷新连接或转到数据源配置的架构选项卡时,出现以下错误:
[42S02][42102] org.h2.jdbc.JdbcSQLSyntaxErrorException: Table "INFORMATION_SCHEMA_CATALOG_NAME" not found; SQL statement: select CATALOG_NAME from INFORMATION_SCHEMA.INFORMATION_SCHEMA_CATALOG_NAME [42102-210].
Run Code Online (Sandbox Code Playgroud) 我想要一个 YouTube 视频的海报图片。
因此,当您单击图像时,您将自动播放 YouTube 视频。
但因为我想删除控制器我必须使用 iframe
<iframe width="560" height="315" src="https://www.youtube.com/embed/q6EoRBvdVPQ?rel=0&controls=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
像这样的东西。
而且我有几个视频要应用,所以我想知道包括iframe的代码应该如何。
谢谢 !
我已经编写了一些代码,每次点击按钮时必须逐个打开LED(在一个圆形中),但有时只需点击一下按钮就可以点亮下一个指示灯而不是一个随机点亮四个指示灯.这就像一个或多个LED跳过它.我认为这个问题是由于时钟速率设置错误或上升/下降EXTI跳闸错误设置造成的.董事会:STM32DISCOVERY
periph.h
#ifndef PERIPH_H
#define PERIPH_H
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
#include "misc.h"
#include "stm32f4xx_exti.h"
#include "stm32f4xx_syscfg.h"
void Initialize_GPIO_LEDS(void);
void Initialize_GPIO_Button(void);
void Initialize_EXTI0_PA(void);
void Initialize_NVIC(void);
typedef enum
{
GPIO_LED_Green = GPIO_Pin_12,
GPIO_LED_Yellow = GPIO_Pin_13,
GPIO_LED_Red = GPIO_Pin_14,
GPIO_LED_Blue = GPIO_Pin_15
}GPIO_LED_TypeDef;
void GPIO_LED_On(GPIO_LED_TypeDef GPIO_LED_x);
void GPIO_LED_Off(GPIO_LED_TypeDef GPIO_LED_x);
void GPIO_LED_All_On(void);
void GPIO_LED_All_Off(void);
#endif /* PERIPH_H */
Run Code Online (Sandbox Code Playgroud)
PERIPH.C
#include "periph.h"
GPIO_InitTypeDef GPIO_LEDS;
GPIO_InitTypeDef GPIO_Button;
EXTI_InitTypeDef EXTI0_PA;
NVIC_InitTypeDef NVIC_Struct;
void Initialize_GPIO_LEDS(void)
{
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
GPIO_LEDS.GPIO_Pin = GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_12;
GPIO_LEDS.GPIO_Mode …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写防御代码并确保static_assert<>结构的成员具有特定的偏移量以满足某些硬件要求
MISRA C++ 规则 18-2-1 规定“不得使用宏 offsetof”,因此我们“取消定义了 offsetof”。
我们提供了一些模板的东西,但是它们在使用时都会失败static_assert<>
我一直无法找到static_assert<>跨编译器与 C++11 兼容的东西。
struct Commands
{
uint32_t command[4];
};
struct DMA_Bundle
{
struct header_
{
uint32_t num_of_elems;
uint8_t reserved[60];
} header;
Commands array[16];
};
Run Code Online (Sandbox Code Playgroud)
我试图确保array从一开始就是 64 字节。
static_assert(offsetof(DMA_Bundle,array)==64,"zoinks");
Run Code Online (Sandbox Code Playgroud)
确实有效,但 MISRA 说但我不能使用它。(我无法与我们的功能安全人员争论:/)
我尝试过以下方法,但通常不起作用:
static_assert(offsetofarray()==64,"bar");
static_assert(myoffsetof(DMA_Bundle::array)==64,"double_zoinks");
Run Code Online (Sandbox Code Playgroud)
显式offsetofarray()constexpr 函数在 GCC 7.5.0 下确实可以工作,但在更高版本的 GCC 和 Clang(这是我们的嵌入式处理器工具使用的)下会失败。它因“static_assert 的非恒定条件”而失败。
另一个似乎抱怨“无效使用非静态数据成员‘DMA_Bundle::array’”
而且,无论如何,我只能使用 C++11。
这是我的一般问题空间:
我通过I2C拥有与设备的字节/位协议。
我有命令的“数据库”以完整描述所有位字段的类型,值和枚举。
我有一个使用数据库的类和一个i2c驱动程序/事务器,以便随后可以调用命令并获取响应。
MyProtocol = Protocol('database.xml',I2CDriver())
theStatus = MyProtocol.GET_STATUS()
Run Code Online (Sandbox Code Playgroud)
为GET_STATUS命令创建正确的字节流,通过i2c发送该字节流,并以字节数组的形式返回当前响应。我可以将其漂亮地打印在GET_STATUS()实现内部的响应中,但是我想将该行为移回对象,而不是在命令中。
我希望我的返回对象是“智能”的: theStatus需要具有字节列表/数组以及对其字段定义的引用。
我想像theStatus一个列表/字节数组,所以我可以直接检查字节。我不在乎切片是否是字节列表或字节数组以外的其他内容。一旦将它们切成片,它们就是字节。
我希望能够打印“ theStatus”,print(theStatus)并漂亮地打印状态中的所有字段。一旦确定了可行的数据结构,该结构允许我访问字节和数据库,我对如何实现此目标感到很满意。
我想theStatus用类似theStatus.FIELDNAME或的方式按字段名称检查theStatus['FIELDNAME']'。同样的事情:一旦我有了一个以字节数组和数据库为成员的可行数据结构,我就可以实现这一目标。
问题是我不知道导致问题最少的“正确”数据结构。
关于实现此目标的最Python方式的任何建议吗?我最初的想法是继承list定义并添加为成员,但似乎python根本不喜欢这种想法。
作文似乎是下一个赌注,但要使其表现得像人一样,list似乎可能需要付出很多努力才能使其“正确”。
作为嵌入式C编程的初学者,我很好奇每个(我的经验)程序执行是如何从main()函数开始的?它就像链接器识别main()并将该"特殊"函数的地址放入复位向量所指向的地址中.