- 博客(11)
- 收藏
- 关注
原创 编译报错undefined reference to `Sophus::SO3::operator*(Eigen::Matrix<double, 3, 1, 0, 3, 1> const&) 解决方法
编译发现出现报错找不到${PROJECT_NAME},原因是target_link_libraries(${PROJECT_NAME} ${Sophus_LIBRARIES})应该放在add_executable(${PROJECT_NAME} src/lesson1.cpp)下面,不然找不到${PROJECT_NAME}.可以通过,可执行文件生成在了build路径下,而不是devel中,原因是add_executable被提到了catkin_package()之前(具体细节未知)
2025-04-09 14:21:25
44
原创 orb_slam2遇到pangolin could not be found because dependency Eigen3 could not be found
原因是pangolin版本太新了,需要换回老版本才可以运行,实测0.5版本可以运行。
2025-03-25 12:45:24
213
原创 pip install 安装torch相关内容的注意事项
解决方法是先 pip install torch==2.0.0 torchvision==0.15.1 torchaudio==2.0.1 --index-url https://download.pytorch.org/whl/cu118,安装好后再执行pip install torch==2.0.0 torchvision==0.15.1 torchaudio==2.0.1 pytorch-lightning torchmetrics (将url地址去掉)
2025-03-10 11:42:46
197
原创 STM32学习——USART串口通信
对于串口通信,如果只是发送数据的话,不需要配置串口中断,但如果要接收数据的话,就需要配置串口中断和NVIC寄存器。我所使用的野火霸道v1开发板上,TX连接PA10,RX连接PA9,因此我们需要配置两个部分,一个是串口模块的配置,一个是GPIO的配置。为了检测我们是否发送完成,我们需要调用 USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG)函数来检测是否发送完成。这是没有串口接收的配置,如果要串口接收,需要配置串口中断。
2023-04-27 11:19:24
278
原创 STM32学习——SytsTick定时器
查看M3内核编程手册,可以找到有关SysTick定时的寄存器有四个,分别是SysTick控制及状态寄存器、SysTick重装载数值寄存器、SysTick当前数值寄存器和SysTick校准数值寄存器。变量ticks代表我们需要定时的时间,SysTick定时器的计数器向下递减,技数一次产生的时间T=1/CLK(AHB),默认情况下CLK(AHB)是72MHZ(由SysTick——CTRL_CLKSOURCE_Msk决定),因此我们计数72次为1us,72000次为1ms。
2023-04-21 15:11:03
233
原创 STM32学习——外部中断EXTI
首先,我们需要对EXTI结构体进行配置,EXTI_Line选择你的中断来自于GPIO_x,Mode选择产生中断还是事件,Trigger选择上升沿还是下降沿,Cmd使能(对寄存器EXTI_IMR和EXTI_EMR进行配置)。结构体配置好后,进行初始化。我们以EXTI0为例,首先我们要使用NVIC_InitTypeDef结构体来配置中断的通道以及抢占优先级和子优先级,配置完后对结构体进行初始化,EXTI0的有关NVIC寄存器的配置就完成了。最后一步要写中断函数,注意中断函数名是库中写好的,最好不要更改。
2023-04-19 20:21:50
408
原创 STM32学习——时钟树
接着看时钟树简图我们会发现,外设所使用到的时钟并不直接是SYSCLK,而是对SYSCLK分频后的PCLK1和PCLK2时钟,所以我们需要对这两个时钟进行配置。假设我们产生的SYSCLK是72MHZ,将AHB预分频设置为1,产生的HCLK为72MHZ,接着HCLK经过APB1预分频器,由于PCLK1的最大频率为36MHZ,我们需要将分频因子设置为2,就可得到频率是36MHZ的PCLK1,同理,PCLK2也是这样配置的。若用户不对时钟树进行配置,stm32的初始化函数会自动将系统频率设置为72mhz。
2023-04-18 17:51:11
355
原创 STM32学习——按键使用
两个按键分别使用GPIOC的PIN_13和GPIOA的PIN_0,因此这两个也是搭载在APB2总线上,需要对APB2总线进行配置。对按键配置完成后,需要对按键的引脚进行扫描,检测是否存在电平改变(顺便进行消抖)。按键和LED不同,按键是输入模式,因此没有Speed的配置需要。总线配置完成后,只需对GPIOA和GPIOC进行配置。在固件库"stm32f10x_gpio.h"中找到。
2023-04-17 20:23:08
1277
1
原创 STM32学习——点亮led
查看系统结构框图可知GPIOB连接在APB2总线上,那么我们的思路就比较清晰了。只需对APB2总线进行配置,对GPIOB的引脚、模式和速度进行配置就可以实现功能。GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) 来将对应引脚拉低。查看函数定义的注释可知,前一个变量是时钟选择,后一个变量是使能位。对APB2总线配置完成后,只需对GPIOB进行配置就可实现功能。使用stm32的固件库,找到APB2总线的初始化函数。
2023-04-17 18:27:04
830
原创 STM32学习——创建工程
若工程里没有声明 USE_STDPERIPH_DRIVER,需在Preprocessor Symbols的Define中声明。添加完成后,start group下会有如下文件。首先,stm32工程的创建要注意起始文件的选择。此外,在自己创建.c文件时,需要注意路径包含。
2023-04-17 18:09:03
96
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人