- 博客(98)
- 资源 (23)
- 收藏
- 关注
原创 GD32F303修改外部25M晶振
背景:由于项目为了降成本将stm32f407平台换为gd32f303平台,硬件设计没有按照官方参考的8M外部晶振设计,而是采用了25M晶振,因此需要在官方库基础上修改晶振频率,使系统达到更高的主频。本文将系统主频配置为100Mhz,根据系统时钟树可知25M晶振经过1或者2分频后在倍频2~63倍不能得到120M实验环境:主芯片:GD32F303VET6库版本:GD32F30x_Firmware_Library_V2.1.3编译环境:keil5修改方法:1.修改晶振频率宏定义 HXTA
2022-03-25 17:19:28 6063 1
原创 MLX90614修改地址
默认地址0x00 - 为设备的硬件地址,不可修改,接一个传感器推荐使用,修改地址时使用0x000x5A - 出厂设备的eeprom 地址,可修改,如需接多个传感器,修改此地址即可修改地址注意事项:存储地址的地址是0x2E,不是0x0E修改地址之前必须先擦除,写3个字节到0x2E(0x00;0x00; PEC(0x6F))延时修改地址需要写3个字节到0x2E(7bit-addr;0xBE; PEC)重新上电pec校验算法uint8_t pec_calculation(
2022-01-19 22:57:15 1400 1
原创 GD32F103 复用 PA15为gpio功能
背景使用GD32f103开发时,硬件设计pa15脚为输出功能,由于该io默认为jtag的JTDI脚,我调试和下载程序用的SWD模式,因此可以将其复用为GPIO功能重映射 /* GD32禁用jtag的JDTI脚PA15,重映射成GPIO */ rcu_periph_clock_enable(RCU_AF); rcu_periph_clock_enable(RCU_GPIOA); gpio_pin_remap_config(GPIO_SWJ_SWDPENABLE_REMAP, ENABLE);
2021-09-23 10:39:03 5931 1
原创 ROS 主从机配置
背景:机器人底盘测试建图导航,由于不能接入显示设备,因此需要通过pc端打开rviz显示解决方案:一.通过远程控制工具(本人使用向日葵远程)1、需要注意底盘板子架构,arm架构官网没有可用软件,需要找到arm专用版本并按照步骤操作2、如果不接显示器系统不能进入桌面,则需要安装虚拟显示器3、添加开机自启动二.通过ROS主从模式(配置方法如下)1、主机端:将从机ip地址和hostname写入 /etc/hosts文件打开hosts文件sudo vim /etc/hos
2021-09-01 21:22:19 1094
原创 STM32CubeIDE生成工程添加printf打印(uart1)
背景:使用STM32CubeIDE可以很方便的生产驱动代码,工程可直接编译下载,默认配置uart1后不能使用标准输出printf进行打印,需要自行添加支持。方法:使用STM32CubeIDE选择uart1,配置好后生成工程代码将如下代码添加到main文件中#include "stdio.h"#ifdef __GNUC__#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)PUTCHAR_PROTOTYPE{ HAL_UART_
2021-06-22 17:41:14 2138 1
转载 嵌入式C语言编程规范(个人规约)
0规范制定说明 0.1箴言 技术人员设计程序的首要目的是用于技术人员沟通和交流,其次才是用于机器执行。程序的生命力在于用户使用,程序的成长在于后期的维护及根据用户需求更新和升级功能。如果你的程序只能由你来维护,当你离开这个程序时,你的程序也和你一起离开了,这将给公司和后来接手的技术人员带来巨大的痛苦和损失。因此,为了程序可读、易理解、好维护,你的程序需要遵守一定的规范,你的程序需要设计。 “程序必...
2021-06-03 14:17:42 715
原创 nRFgoStudio安装后不能识别nrf52832
目录背景问题原因:解决方法背景由于使用nrf52832做开发,翻墙下载了最新的sdk16和nrfgo studio,安装完nRFgo Studio后,发现连接开发板没有设备出现,但是iar却可以烧录程序问题原因:由于本电脑装有jlink驱动4.9版本,因此安装过程中直接跳过了jlink驱动的安装(v5.12),因此版本不对,导致不能识别芯片解决方法既然知道jlink驱动问题,那直接重装nRFgo Studio,使用repair模式,发现并不会重装jlink先卸载nRFgo Studi
2020-05-29 23:24:05 1946
原创 关于不能及时回复问题的说明
由于写博客是本着记录一些实用的方法技巧的原则,方便自己也方便和我遇到相同问题的人能快速解决问题,但是由于工作需要,并不能经常看大家提出的问题,因此给遇到问题的人一些小小的建议1、遇到问题先自己尝试解决,如果项目紧急,并且已经找到响应的博文,那么就要自己尝试按照博文方法操作,一般都能解决问题2、遇到相关问题但是不完全一样,可以参考博文解决思路3、如果自己解决了新的问题,希望大家都分享出来一些紧急项目,可能等博主的回复,可以尝试:添加博主微信 gyb510,一定要备注csdn(ps:博主不一定能
2020-05-29 15:19:31 1778
原创 基于cuda10.2安装paddlepaddle的报错解决方法
目录背景官方文档pip安装paddle测试paddle,报错解决方法背景由于百度官方指定cuda版本为10.0,但是电脑已经安装了cuda10.2版本,基于此版本安装paddle官方文档pip安装paddlepaddle安装比较简单,官方文档给的也详细,官方链接测试paddle,报错RuntimeError: cublas64_100.dll not found.解决方法找到 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v1
2020-05-26 13:46:28 1891 1
原创 Matlab的App Designer中使用timer定时任务
背景:matlab app designer设计的桌面程序需要用到timer定时任务坑:直接在app designer中的.mlapp文件中添加timer和回调函数,发现回调函数不会被执行,查资料才发现,回调函数需要在.m文件中实现,具体例子往下看直接上代码:新建timer_callback.m文件,文件内容如下:function timer_callback(app) ...
2020-04-08 16:37:27 4621 3
原创 win10强制升级后VMware14异常卡死的解决办法
背景:win10偷偷自行升级了系统,升级后出了一系列问题,其中VMware深受其害,ubuntu系统异常卡死,强制退出后,重开进不了图形界面,以为虚拟机系统出了问题,折腾了一天,桌面恢复成功,但还是开机一会就卡死,必须重启电脑才能再次打开,于是尝试打开移动硬盘的另一个ubuntu系统,结果是一样卡死,证明是win10系统搞的鬼,于是决定重装vm的最新版本15.5过程:第三方网站下载vm...
2020-03-27 23:38:06 1590
原创 cmake添加标准库(math.h)
cmake添加标准math库的方法需要cmake生成makefile的工程文件有对math库的依赖,主要在cmakelist.txt添加依赖:需要cmake生成makefile的工程文件有对math库的依赖,主要在cmakelist.txt添加依赖:LINK_LIBRARIES(m) #括号中添加标准库名称,math的库用m表示ps:需在add_executable(main ...
2020-03-12 21:41:12 6499 1
转载 TeamViewer 远程应用不显示,空白解决方案
背景:工作需要,经常会在家解决一些工作问题,有时候需要登录公司电脑,Teamviewer是款很好用的工具,用的多了发现,有时候vs2017不能显示,查相关资料,有人说是以为笔记本盖子盖着的原因,最后终于查到一篇...
2019-12-08 19:19:04 8226 2
原创 vs2017桌面程序 处理耗时任务界面卡死
背景:vs2017开发桌面应用程序,点击按键处理耗时任务,比如一个按钮按下进入循环处理,另外一个按钮按下,退出循环,当进入循环时,界面会卡死,不能进行操作解决方法:1、创建窗口消息处理函数:void DoEvents(){ MSG msg; while (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE)) { Di...
2019-10-16 16:53:52 626
转载 VC++2017关于项目出现"const char *" 类型的实参与 "char *" 类型的形参不兼容错误的解决方法
背景:C++项目中经常会定义如下形式的字符串char *testString = “This is test string…”;这样一直用的没有问题, 但今天突然编译报错了~!报错:“const char *” 类型的实参与 "char " 类型的形参不兼容之类的错误, 函数形参为char的类型直接写入字符串也会报错, 这可就郁闷了, 上网查找竟然没有找到解决方法, 但是在另一个电脑同一个项目...
2019-10-11 18:51:52 437
转载 VS中的路径宏:OutDir、ProjectDir、SolutionDir等各种路径的说明
$(ProjectDir)项目的目录(定义形式:驱动器 + 路径);包括尾部的反斜杠“\”。$(ProjectPath)项目的绝对路径名(定义形式:驱动器 + 路径 + 基本名称 + 文件扩展名)。$(RemoteMachine)设置为“调试”属性页上“远程计算机”属性的值。有关更多信息,请参见更改用于 C/C++ 调试配置的项目设置。$(References)以分号分...
2019-09-23 15:36:17 1508
原创 vs2017桌面应用程序添加控制台打印的方法
背景:使用vs2017开发桌面应用的时间,由于对vs不是很熟悉,并且vs不支持拖拽控件,所以调试过程中需要看到程序的运行状态,printf是最好的选择网上有给桌面程序添加控制台的文章,但是按照博客方法尝试报错,半天未解决,最后还了搜索引擎,才找到解决方案,记录下来给以后遇到相同问题的人添加方法:1、在vs中打开解决方案2、在项目名称上鼠标右键,选择属性3、在配置属性窗口中,选择 ...
2019-09-22 17:51:03 1818 4
原创 opencv-处理yuy2格式视频
背景:由于历史原因,opencv总是默认按照BGR格式处理视频,通过opencv打开一款格式为YUY2的camera,opencv会默认转换成BGR格式,如果想拿到YUY2的camera的原始数据,那么需要进行设置,本文以python为例进行演示python调用opencv库打开camera,默认BGR格式#引入opencv库import cv2 as cv#设置camera参数...
2019-09-19 11:44:45 7965 7
原创 软件版本号规范
软件版本号规范一、软件版本号由四部分组成:1、 主版本号 - X2 、子版本号 - Y3、 阶段版本号 - Z4、日期版本号加希腊字母版本号(可选)常用的希腊字母版本号:alpha、beta、RC、release。举例:1.0.1.190628_beta二、规则重大变更升级,X需递增增加新功能,Y需递增修复bug,Z需递增0.Y.Z 的...
2019-06-28 19:00:22 3534
原创 软件版本规范
软件开发的项目周期命名规范介绍开发期alpha版:内部测试版。α是希腊字母的第一个,表示最早的版本,这个版本可能包含很多BUG,功能也不齐全,主要是给开发人员和 测试人员测试和找BUG用的beta版:公开测试版。β是希腊字母的第二个,主要给忠实用户测试用的,该版本任然存 在很多BUG,但是相对alpha版要稳定一些。这个阶段版本的软件还会不断增加新功能RC(Rele...
2019-06-28 17:50:38 185
原创 can学习-dbc文件
背景:汽车通讯领域多使用can协议,通用协议有j1939等,有时候需要私有化的CAN协议,如果需要和他人联调的话,协议文档是必须的,但是can协议的dbc文件可以更直观的表达协议内容编辑工具推荐使用 CANdb++...
2019-06-14 13:43:16 10732 1
原创 python学习-unsigned类型
背景:在使用python解析硬件设备数据时,遇到uint64_t类型的时间,使用python解析后为int类型,需要转换成unsigned int转换方式:查阅资料python不支持unsigned类型将int类型数据time转换为无符号数据的方式:time &= 0xffffffff...
2019-06-05 14:13:25 7934 2
原创 python学习-从ctypes.c_uint8数据中提取float数据
背景:由于用到系统中api,获取到的数据类型为ctypes.c_uint8,在C语言中可直接使用memcpy将uint8数组拷贝到float类型变量中,python不能操作地址,因此需要进行数据转化。转化方式:import struct#ctypes.c_uint8类型数组,用于接收数据value = (ctypes.c_uint8 * 2000)(0x00)temp = st...
2019-06-03 19:03:17 2266
转载 C语言#error预处理
#error 预处理指令的作用是,编译程序时,只要遇到#error 就会生成一个编译错误提示消息,并停止编译。其语法格式为:#error error-message注意,宏串error-message 不用双引号包围。遇到#error 指令时,错误信息被显示,可能同时还显示编译程序作者预先定义的其他内容。该预处理将产生一条编译时错误信息,信息中包含#error后指定的内容。C...
2019-02-27 15:40:49 1947
转载 #ifdef 如何实现“与或”
用宏定义包起来的代码类似如下:#ifdef A//...#endif // A现在要加入一个宏定义 B,实现类似这样的条件判断(显然实际上这样是不行的):#ifdef A && ifdef B其实应该这样:#if (defined A) && (defined B)//...#endif“或”的形式是:#if (!define
2019-02-27 13:55:30 6670
原创 roslaunch异常退出 exit code -9
背景:使用双目摄像头跑ros的时候遇到异常退出,常见的错误码为 -11 -6 等,错误码-9比较少见,本文简单介绍-9可能的错误原因exit code -9含义:查阅google,必应等搜索引擎,相关资料都比较少,从几篇文章中提取出以下几点有用信息错误码为linux系统的错误码,并非ros系统的-9含义为memory使用相关的错误定位问题:使用htop检测运行ro...
2018-11-07 12:50:15 4080 2
原创 FX3(CX3)学习笔记9-串口DMA
1、实验环境硬件平台:CYUSB3065芯片自制板sdk版本:EZ-USB FX3 SDK1.3 实验例程:cycx3_uvc_ov5640(cypress官网下载demo)2、实验目的使用串口的DMA接收功能,将接收到的数据打印出来3、程序代码3.1 串口初始化 注意:dmaConfig.size必须为16的整数倍void CyCx3AppUart...
2018-08-22 15:23:15 3026 3
原创 FX3(CX3)学习笔记8-串口流控io配置为simple gpio
1、实验环境硬件平台:CYUSB3065芯片自制板sdk版本:EZ-USB FX3 SDK1.3 实验例程:cycx3_uvc_ov5640(cypress官网下载demo)2、实验目的使用串口功能的情况下将UART_RTS/GPIO46配置为simple gpio功能3、程序代码3.1 将UART_RTS重载为simple gpio CyFx3De...
2018-08-22 15:08:05 1387
原创 linux系统下i2c学习2
本文详解 i2c-tools 写数据到i2c slave的方法1、基本命令i2cset 【-f】 【-y】 【-m MASK】 【-r】 I2CBUS CHIP-ADDRESS DATA-ADDRESS 【VALUE】…… 【MODE】
2018-05-15 14:23:00 2165
原创 STM32f4-backup SRAM
描述:stm32f4系列有backup sram,用于掉电不丢失存储数据,该区域由纽扣电池供电保存适用场合:单片机工作在极端的条件下,可能存在死机风险,同时需要保存实时的标志数据,数据变化过于频繁,此时存flash会有很多问题,可考虑使用backup sram的掉电不丢失数据功能
2018-05-10 14:21:38 3901
转载 FX3学习笔记7-GPIO使用的注意事项
FX3 GPIO可以配置成Simple GPIO和Complex GPIO两种:Simple GPIO : 是通用GPIO功能,输入、输出,上拉,外部中断Complex GPIO : 是复杂IO,支持的功能可查阅 FX3 TRM page 199. Complex IO 最多只能用到8个引脚,每一组是根据gpio_id号对8取余来区分的,因此需要用到的IO只能是对8取余之后不...
2018-05-04 18:59:21 2387 2
原创 linux基于i2c-tools快速搭建设备读写环境
一.实验环境1.硬件平台· arm开发板(使用i2c line 4) · i2c接口的imu2.软件环境· ubuntu 16.04 · i2c-tools 3.1.2二.实验步骤1.提取所依赖的i2c-tools文件· i2c-dev.h · 2cbusses.h · 2cbusses.c2.调用必要头文件#include <sys/io...
2018-03-27 00:24:16 2153 4
原创 linux系统下i2c学习1
linux系统快速测试i2c设备,可以使用第三方的工具i2c-tools;具体用法如下:1、安装i2c-toolssudo apt-get install i2c-tools2、列出所有的i2c总线i2cdetect -l3、查看总线上挂载的所有i2c设备,命令以总线4为例sudo i2cdetect -r -y 44、查看总线上地址为0x6a的设备的所有寄存器 sudo i2cdump -f -...
2018-03-08 22:54:39 610 1
原创 FX3学习笔记6-gpio
1、实验环境硬件平台:CYUSB3KIT-003 EZ-USB® FX3™ SuperSpeed Explorer Kitsdk版本:EZ-USB FX3 SDK1.3 / SuperSpeed Explorer Kit 1.0实验例程:cyfxuvc_an75779(cypress官网下载demo)2、实验目的使用CYUSB3KIT-003的gpio_50
2017-12-11 15:08:59 1859
原创 tlc59108 驱动 LED
1、背景:使用tlc59108驱动红外模块,通过调节内部寄存器来控制输出电流,进而控制红外的输出功率2、注意事项:由于红外属于不可见光(部分可见),因此调试阶段需要将输出能力调制最强,方便观察,已确认硬件完好tlc59108默认开机是关闭振荡器的,因此如果没有通道寄存器打开normal mode的话,寄存器可读写,但是并不会有输出的3、输出最强模式配置:a、使能芯片normal mode将mode1
2017-11-10 11:39:10 2308 2
原创 cc2541调试-头文件包含的重要性
说明:调试cc2541 lcd屏时,一直不能显示,当然软件硬件都有问题,后期排除硬件问题之后,软件一直调试不通,最后用了一天时间查出了问题,自己写的lcd.c lcd.h文件,调用该文件的文件没有加入lcd.h的头文件,编译没有报错,没注意警告、结果导致传的参数都是错的总结:编译器的警告一定不能忽略,编程一定要规范
2017-08-01 16:29:13 776
原创 ST-Link SWD接口接线
1、实验目的:实现通过st-link调试stm32芯片2、实验环境:stm32开发板留有20pin的调试接口,可接jlink和stlink调试工具使用st-link v23、接线方式SWD接口需要连接四根线:VCC GND SWDIO SWCLK20pin调试接口对应的pin脚关系:Pin 1 – VCC:This is the traget board Vcc. It is used by the
2017-06-20 16:23:55 27733
MX Component Version 4编程手册081138.pdf
2021-04-27
STM32F103_ICM20948网罗平台资料.rar
2021-03-25
TCD1254GFG基于stm32的驱动程序
2019-09-22
IAR For ARM 8.3 破解工具
2019-03-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人