我一直在尝试从源代码而不是 pip 安装 opencv,因为我无法成功读取 VideoCapture。
在Ubuntu 16.04.3 LTS上安装opencv-3.2.0。遵循这里提到的细节。
我在“.../opencv-3.2.0/build/CMakeFiles/CMakeError.log”中收到以下错误:
.../opencv-3.2.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c:1:28: fatal error: linux/videodev.h: No such file or directory
.../opencv-3.2.0/build/CMakeFiles/CMakeTmp/CheckIncludeFile.c:1:25: fatal error: sys/videoio.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
libv4l-dev已经是最新版本 (1.10.0-1)
我还在/usr/include/linux运行了以下命令:
sudo ln -s ../libv4l1-videodev.h videodev.h
Run Code Online (Sandbox Code Playgroud)
CMake 输出是:
-- General configuration for OpenCV 3.2.0 =====================================
-- Version control: unknown
--
-- Platform:
-- Timestamp: 2017-08-09T05:39:43Z
-- Host: Linux 4.4.0-87-generic x86_64
-- CMake: 3.5.1
-- CMake generator: Unix Makefiles
-- CMake build tool: …Run Code Online (Sandbox Code Playgroud) 我正在编程STM32L051R8并有下一个问题.我大部分时间都在尝试使用待机模式,有时通过RTC唤醒,这是一个自动唤醒.如果我在没有睡觉的情况下工作 - 一切正常,我每次都会得到一个RTC中断,但是当我使用待机时 - 不要.
如果我使用待机,我的第一个周期很好:
但是第二个和下一个周期在进入待机状态后立即唤醒(3).
我正在尝试在STM32F469I-DISCO板上初始化RTC。由于我仍在学习,所以我尝试使用HAL API,使我可以完成一些项目,直到我对这种微控制器有了足够的了解,可以直接与寄存器一起使用。
无论如何,我的代码使用了CubeF4的STM32F469I-DISCO模板,该模板允许直接加载HAL层和系统时钟(通过8 MHz HSE振荡器获得180 MHz)。
为了初始化RTC,我遵循了UM1725中给出的说明:STM32F4 HAL和LL驱动程序说明。在页面715,第55.2.4节中,您具有使用HAL_RTC API的说明。
第一点说,有必要启用“ RTC域访问”。在上一节(55.2.3,同一页)中解释了这一点。
我做了要求做的事情。这是我的代码(简化后,我只允许RTC Init部分和系统时钟配置):
#include "main.h"
RTC_HandleTypeDef rtcHandle;
RTC_InitTypeDef rtcInit;
RTC_TimeTypeDef rtcTime;
RTC_DateTypeDef rtcDate;
static void SystemClock_Config(void);
static void Error_Handler(void);
int main(void)
{
HAL_Init();
SystemClock_Config();
////////////////// RTC
HAL_PWR_EnableBkUpAccess();
__HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE);
__HAL_RCC_RTC_ENABLE();
rtcInit.HourFormat = RTC_HOURFORMAT_24;
rtcInit.AsynchPrediv = 0x7F;
rtcInit.SynchPrediv = 0xFF;
rtcInit.OutPut = RTC_OUTPUT_DISABLE;
rtcInit.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
rtcInit.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
rtcHandle.Instance = RTC;
rtcHandle.Init = rtcInit;
HAL_RTC_Init(&rtcHandle);
rtcTime.Hours = 12;
rtcTime.Minutes = 30;
rtcTime.Seconds = 40;
rtcDate.WeekDay = RTC_WEEKDAY_WEDNESDAY; …Run Code Online (Sandbox Code Playgroud) 我在带有FreeRTOS的stm32L476上的RTC上有一个奇怪的行为。
它仅在RUN模式下第一次读取,RTC正在工作,因为从运行到运行,它保存了内部寄存器的值并且一直在上升。
另外,如果我在583行的stm32l4xx_hal_rtc.c处放置断点时进行调试,则:
tmpreg = (uint32_t)(hrtc->Instance->TR & RTC_TR_RESERVED_MASK);
*breakpoint* sTime->Hours = (uint8_t)((tmpreg & (RTC_TR_HT | RTC_TR_HU)) >> 16);
Run Code Online (Sandbox Code Playgroud)
我可以看到tmpreg和TR寄存器如何更新,然后单击跳转到下一个断点时,显示的内容也相同。
那么,为什么在正常运行时它不起作用?
初始化代码(生成多维数据集MX):
void MX_RTC_Init(void)
{
RTC_TimeTypeDef sTime;
RTC_DateTypeDef sDate;
/**Initialize RTC Only
*/
hrtc.Instance = RTC;
hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
hrtc.Init.AsynchPrediv = 127;
hrtc.Init.SynchPrediv = 255;
hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE;
hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
if (HAL_RTC_Init(&hrtc) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
/**Initialize RTC and set the Time and Date
*/
if(HAL_RTCEx_BKUPRead(&hrtc, RTC_BKP_DR0) != 0x32F2){
sTime.Hours = 0; …Run Code Online (Sandbox Code Playgroud) 我正在编写代码来生成时间戳,以将其用作执行特定功能的参考。谁能帮我怎么做。我是嵌入式编程新手。
我想这可能是不可能的。请证明我错了。
以下设置:
gui)通过创建一个来打开另一个应用程序(让我们称之为它server)new Process()server由其他人开发)以一个参数启动以隐藏其 GUIgui用户进行一些输入gui命令server执行一些任务server现在,由于整个用户体验需要针对重复操作进行优化,因此打开的 GUI 元素(窗口/表单/对话框)需要预先选择/聚焦/活动。
第一个问题的出现是因为我没有找到这些属性(Focus、Active、Selected、TopMost)之间差异的明确解释。
现在真正的问题是,我如何确保所有 GUI 元素都处于活动状态并被选中,无论它们是由我的gui进程还是由server进程启动?
使用 WINAPI 可以更强大我读到所以我定义了以下内容
// required to use WINAPI for RegainFocus();
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern int SetForegroundWindow(IntPtr hwnd);
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr SetActiveWindow(IntPtr hwnd);
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
static private void RegainFocus() …Run Code Online (Sandbox Code Playgroud)