- 博客(25)
- 收藏
- 关注
原创 STM32上电复位与手动复位介绍
上电复位:STM32的复位引脚低电平有效,但是低电平、高电平在电气特性中有一定的范围,刚上电瞬间,复位电路电容两端没电为0V,此时复位引脚处于低电平状态,同时电容一直在充电, 当电容电压上升到一定值时,复位引脚就变成高电平。手动复位:按下按键,电容两端和地直接相连,电容放电,放电到低电平电压时,产生复位信号...
2020-03-22 16:10:25
18329
2
原创 C语言:typedef 与 数组
typedef int arrs[5]; typedef arrs * p_arr5; typedef p_arr5 arrp10[10]; arr5 togs; // togs是具有5个元素的int数组 p_arr5 p2; // p2是一个指针,指向具有元素的数组 arrp10 ap; // ap是具有十个元素的指针...
2020-02-18 14:44:20
856
1
原创 STM32启动文件详解
该文主要参考https://www.cnblogs.com/wenshinlee/p/8859227.html以STM32F407在MDK keil arm编译器的启动文件startup_stm32f407xx.s启动文件使用的 ARM 汇编指令汇总stack–栈Stack_Size EQU 0x00000400 AREA STAC...
2020-02-04 15:32:08
284
原创 C语言中的关键字__attribute__
C语言中的关键字__attribute__ 是绝对定位:来源:https://www.cnblogs.com/xyelectric/p/9046048.htmlattribute( at(绝对地址) )的作用分两个,一个是绝对定位到Flash,另个一是绝对定位到RAM。1、定位到flash中,一般用于固化的信息,如出厂设置的参数,上位机配置的参数,ID卡的ID号,flash标记等等cons...
2020-01-16 15:21:17
916
原创 ROS编译出:error: ‘shared_ptr’ in namespace ‘std’ does not name a temp late type
解决方法:取消CMakeLists.txt下 add_compoile_options( -std=c++11 ) 的注释## Compile as C++11, supported in ROS Kinetic and newer# add_compile_options(-std=c++11)原因:ROS都是按照c++03的编译方法进行,如果使用了新标准c++11,则需要先这么处理...
2020-01-09 14:49:14
562
原创 ROS移动机器人搭建
STM32底层话题其中“cmd_vel”为接收速度信息“pid”为接收调整后的电机PID数据“raw_vel” //定义速度信息发布(类)“raw_imu” //定义IMU信息发布(类)“battery” //电量信息发布ROS启动小车bringup.launch启动 serial_node 节点,接收底层的话题信息 <!--serial communicati...
2020-01-09 10:42:43
1533
原创 Turtlebot3中级教程-应用-定点导航
教程链接原理:移动机器人数学模型的逆运动学算法:1.调整机器人的朝向,直到机器人朝向与初始位置到目标位置连线方向一致2.沿着当前方向直行,直至目标位置3,调整机器人的朝向,直到与目标方向一致。import rospyfrom geometry_msgs.msg import Twist, Point, Quaternionimport tffrom math import rad...
2020-01-07 17:17:16
1268
原创 初学turtlebot ---turtlebot 避障源码解析
import rospyimport mathfrom sensor_msgs.msg import LaserScanfrom geometry_msgs.msg import TwistLINEAR_VEL = 0.22STOP_DISTANCE = 0.2LIDAR_ERROR = 0.05SAFE_STOP_DISTANCE = STOP_DISTANCE + LIDAR_...
2020-01-04 15:47:20
1889
原创 ROS- 激光雷达测距原理及主要参数
一.激光的主要参数激光雷达的主要参数包括测距范围、扫描频率、角分辨率、精度等几方面。1.扫描频率扫描频率表示一秒内雷达进行多少次扫描。扫描频率越大,设备对外界环境的感知的速度越快,系统实时性可以更高。2.角分辨率角分辨率表示两个相邻测距点的角度步进。角分辨率大小决定了一次扫描能返回的样本点数以及该激光雷达所能检测的最小障碍物大小。如下图所示:角分辨率为a,障碍物距离为h,则该距离可以检...
2020-01-04 14:16:58
4805
原创 STM32标准库和HAL库小区别
HAL_TIM_IC_Start_IT(&htimx_Encoder,TIM_CHANNEL_4 | TIM_CHANNEL_3); 标准库表达HAL_TIM_IC_Start_IT(&htimx_Encoder,TIM_CHANNEL_3);// HAL_TIM_IC_Start_IT(&htimx_Encoder,TIM_CHANNEL_4);...
2019-12-03 10:26:28
2715
原创 关于STM32寄存器访问
#define __IO volatile /*!< Defines 'read / write' permissions */用该类型定义的寄存器允许读写操作typedef __IO uint32_t vu32;typedef __IO uint16_t vu16;#define BASE_ADDRESS (vu32*)(0x1FF...
2019-11-26 11:19:18
394
原创 关于STM32 定时器的编码器模式和 输入捕获的联合使用
众所周知,STM32有许多个定时器,并且每个定时器各有4个通道,并且每个通道配置一种同类功能,比如同为输入(编码器模式、输入捕获),或同为输出(PWM)等输入捕获模式每个定时器有4个输入捕获功能的独立的通道,当引脚设置了定时器捕获模式时,一旦引脚捕获到相应的上升沿(下降沿),捕获寄存器将获取当前计数器CNT的值。Direct直连 输入通道IC1连接CH1 IC2接CH2Indir...
2019-11-08 14:37:12
4246
原创 粗谈 STM32 HAL库的中断
本文基于本人在STM32F4使用上的理解,若有不正确的地方请留言! 用过STM32 STD标准库的人都应该知道 当硬件中断来临时, 比如TIM3的溢出中断其步骤程序首先进入void TIM3_IRQHandler(void)的中断服务函数,但是触发TIM3中断的情况有很多种,如图1 有更新中断标志,捕获中断标志等等,因此进入中断服务函数后,得判断中断标志位是否置位,再写用户的应用...
2019-11-07 11:11:23
1159
转载 Keil&MDK环境下查看程序占用Flash和SRAM空间大小
在keil&MDK环境下rebuild程序时会在“bulid output”显示当前的编译情况,其中就包括程序占用Flash和SRAM的大小。查看FLASH跟SRAM的占用空间问题主要看下面的语句。Program Size: Code=29864 RO-data=123592 RW-data=60 ZI-data=3900其中 要着重注意的是Code、RO-data、RW-data...
2019-06-26 21:15:07
8680
转载 linux UBUNTU终端软件terminator
Terminator是CrunchBang的默认终端,该终端基于GNOME terminal。Terminator最大的特点就是可以在一个屏幕下同时显示多个终端。Terminator可以在Ubuntu在同一窗口中启动多个终端。可以自由的在一个窗口中分割区域建立新终端,通过鼠标拉伸调整每个终端的大小,对同时需要操作多个终端的用户非常方便。 同时操作多个VPS的时候不用切换终端窗口,在一个窗口中就可以...
2019-06-10 15:58:51
783
转载 RoboWare Studio 软件安装
来源:微信全球ROS开发者公众号一、RoboWare Studio 软件特性RoboWare Studio是一个ROS集成开发环境。它使ROS开发更加直观、简单,并且易于操作。可进行ROS工作区及包的管理,代码编辑、构建及调试。(1)易于安装及配置下载后双击即可安装,RoboWare Studio可自动检测并加载ROS环境,无需额外配置。这种“开箱即用”的特性能够帮助开发者迅速上手。(2...
2019-06-10 15:58:03
2274
翻译 Ubutntu 16.04 下安装ROS Kinetic Kame
Ubutntu 16.04 下安装ROS Kinetic Kame 一、参考文档二、安装前的准备三、ROS Kinetic Kame的安装四、测试ROS一、参考文档ROS的安装可以参考ROS WIKI安装,其官方链接为:http://wiki.ros.org/cn/ROS/Installation二、安装前的准备首先得在电脑安装linux ubuntu16.04 发行版系统,安装完ubun...
2019-06-10 15:57:43
530
转载 Win10 VS2017下OpenCV的配置
一、opencv下载opencv官网二、解压opencv三、配置环境变量选择此电脑(计算机)->右键属性选择->高级系统设置->选择高级->环境变量->系统变量。找到Path后双击,选择新建添加 D:\program files\opencv\build\x64\vc14\bin四、include目录和 lib目录设置打开 Visual Studio...
2019-06-10 15:57:06
226
原创 关于STM32F40xx时钟配置
由图可看出STM32F4有5个时钟源,包括:①内部低速时钟(LSI - 32KHz)②内部高速时钟(HSI - 16MHz)③外部低速时钟(LSE - 32.768KHz)④外部高速时钟(HSE - 8MHz)⑤PLL时钟注:PLL时钟为锁向环倍频输出,STM32F4有两个PLL时钟,分为主PLL和专用PLL(I2S)时钟,PLL(I2S)时钟用于生成精确时钟,从而在I2S接口实现高...
2019-06-06 22:51:52
1255
1
原创 VNC许可密钥
输入一个有效的密钥:5D7L8-ZQXSA-2L5D4-4UFB4-PWDLA 或77NVU-D9G5T-79ESS-V9Y6X-JMVGAELBMU-ZFYMV-2HC77-73M46-UL4TA97KLJ-VBTAL-T7GN2-K29PS-ANXCA45YV6-WXWMJ-NPAAV-HWD7Q-W5HVAL76HR-6428G-Q8JAX-7PSSH-ZWYKAEQ48W-C5MQJ...
2019-04-15 11:35:11
28635
13
原创 VS2017专业版 企业版密钥
NJVYC-BMHX2-G77MM-4XJMR-6Q8QF(企业版)KBJFW-NXHK6-W4WJM-CRMQB-G3CDH(专业版)
2019-04-01 14:36:43
242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人