学习总结
文章平均质量分 52
恋雪1986
这个作者很懒,什么都没留下…
展开
-
如何将虚拟机ubuntu设置网路连接为桥接模式
当将虚拟机的网络适配器设置为NAT模式时,一切正常,可以ping通所有ip, 但是当设置为桥接模式时,ping命令会提示ubuntu connect: Network is unreachable。下图种,VMnet0设置为桥接模式,选择已桥接至步骤1中的网络名字:Realtek PCIe GBE Family Controller.点击确定。如果上面框框中只有两个VMnet,可以手动添加一个,VMnet8是虚拟机的NAT模式,VMnet1是仅主机模式,VMnet0设为桥接模式。原创 2023-02-24 09:46:59 · 3594 阅读 · 2 评论 -
ubuntu下ifconfig找不到命令,packege ‘net-tools‘ has no installation candidate
用sudo apt install net-tools也提示错误:Package 'net-tools' has no installation candidate.再次执行sudo apt-get install net-tools就可以了。原因:系统缺少安装相关软件的包,需要更新软件源。原创 2023-02-23 20:03:56 · 3508 阅读 · 0 评论 -
keil怎么设置生成.bin文件
打开keil的魔术棒,按照下面图设置一下就可以了:fromelf.exe --bin -o "$L@L.bin" "$L@L.axf"原创 2021-06-01 11:31:26 · 190 阅读 · 0 评论 -
进制转换小函数实现,十进制转16进制,char转bcd码等
#include <stdint.h>#include "convert.h"unsigned bcd2bin(unsigned char val)//11 : 0x11{ return (val & 0x0f) + (val >> 4) * 10;}unsigned char bin2bcd(unsigned char val)//0x11 :11/10*16+1 = 17{ if(val==0) return 0; ...原创 2021-05-27 14:40:15 · 321 阅读 · 0 评论 -
strcmp不起作用的问题解决
最近在调试一个项目,项目中用到了strcmp;但是strcmp在L431上用着起作用,在L451上用着竟然不起作用,同样的代码;过程如下:char HeadStr[6];//全局变量void n_recv_gnss_data_process(char ch){ if(ch == '$') { BeginFlag = 1;//开始标志 } if(BeginFlag >= 1) { BeginFlag++;...原创 2021-04-27 10:49:11 · 1261 阅读 · 0 评论 -
lis3dh低功耗调试笔记
最近在调试整机的低功耗,发现在单片机进入低功耗后,整体功耗在400多uA, 不带加速度计(我用的是SPI模式)的硬件版本低功耗为100uA. 两个硬件版本除了加速度计的区别,其他硬件电路都相同;于是确定是LIS3DH的低功耗没调试好,查看LIS3DH的数据手册,发现如下的地方:即pin7引脚内部有个上拉电阻,另外找到数据手册上的table13的下面描述可以将此上拉电阻配置为disable;果真,加上这个配置后,低功耗电流降低了140A左右;功耗还是在300多uA,和100uA相差甚远;根据数据手原创 2021-04-06 16:12:06 · 1202 阅读 · 2 评论 -
MCP2515调试笔记----初始化注意事项
在调试基于F103单片机的MCP2515时,怎么调试都不正常,用的还是以前调试过的代码,隔了一段时间后再重新运行就不行了;于是单步运行调试,没想到,单步运行调试竟然成功了;于是想到是延时的问题,在初始化那里的reset函数里加了个延时,再下载进去板子里果然就正常了。void mcp2515_reset(void){ static uint8_t status; uint8_t cmd = MCP2515_CMD_RESET; mcp2515_cs_enable();//置M...原创 2021-01-20 14:08:36 · 2924 阅读 · 0 评论 -
git GUI版本回滚步骤
步骤:首先本地切换到要回退的那个分支上,然后按照下面步骤执行: 1 日志里选择版本 Repository -> Visualize master's history 2 选择要回到的版本号 reset master branch to here 3 完成回滚修改文件 hard4. Remote -->Push.(记住这个分支一定是不受保护的分支,否则push不成功),选择Force qverwrite-->push.完成。一下是图片展示:...原创 2020-12-29 20:13:41 · 3274 阅读 · 0 评论 -
GD32E230C8T6 定时器使用
定时器2的配置如下:定时时间是1ms,/** \brief configure the TIMER peripheral \param[in] none \param[out] none \retval none */void timer_config(void){ /* TIMER2 configuration: generate PWM signals with different duty cycles: TIM...原创 2020-12-29 11:06:45 · 3798 阅读 · 0 评论 -
gpio模拟串口uart接收数据(HAL库)
GPIO模拟uart的原理就是根据所需要的uart的波特率,计算出每个bit所用的时间,在此时间段内去读取gpio的输入,然后将读取的8bit拼接起来即可,当然这期间要检测起始位和结束位。uart的起始位是下降沿,结束位是上升沿。为了检测准确,我们读取每个bit的中位位置,所以定时时间是每个bit位所占用时间一半。9600波特率的uart模拟,每个bit位的时间是:1/9600 s = 104us的时间,那么半个bit位的定时时间就是104/2 = 52us。所以在检测到下降沿后,接着打开定时.原创 2020-12-08 14:16:45 · 1749 阅读 · 0 评论 -
keil包含了头文件仍然提示找不到定义 解决方案
简单粗暴,直接说明解决方法和问题原因:一看这个图片就明白原因了吧,哈哈。头文件名定义和里面的def名定义不一致。原创 2020-11-12 15:20:49 · 15640 阅读 · 10 评论 -
ACL16加密芯片硬件IIC调试
通过cubemx配置IIC:速率配置为100KHz,可以选择StandardMode,Fast Mode, Fast Mode Plus,这里选择StandardMode;选择RiseTime,FallTime都为100ns;7-bit地址模式,从机地址是0x53;GPIO设置为no-pull,开漏模式生成代码如下:OwnAddress1 = 166,16进制就是0xA6, 配置设置的0x53,0101 0011, 之所以代码里是0xA6,是因为cubemx自动将读写位填原创 2020-07-07 17:15:38 · 1202 阅读 · 0 评论 -
lis3dh调试心得,读取正确的加速度值
最近在调试lis3dh加速度计,网上一搜能找到很多资料,但是描述正确的,感觉不是很多,所以这里我来总结一下,也是在网友博客的基础上将正确的地方集中整理一下。1. 首先说驱动,驱动网上流传的基本上就是一份,.h.c文件随便一搜就能下载到lis3dh的驱动,由于我的是公司电脑,文件是加密,就不上传驱动了,大家可以自行搜索其他的资源下载,驱动下载下来后,用户需要完成的就是底层SPI(这里我用的是SPI读写方法,IIC的没用过)的读写寄存器的函数,我把自己写的粘贴出来,大家参考一下,用的而是HAL函数,这里..原创 2020-06-29 15:05:51 · 11008 阅读 · 12 评论 -
STM32F091VCT6 PC13引脚使用注意 HAL库使用方法
最近在调试F091片子时,用PC13做了3V3的使能开关,结果发现驱动不了,给它输出高,用示波器测量输出还是低;查了很多资料,看到DATASHEET上有这样的描述:参考手册中的描述,RTC_TAFCR寄存器中的值:手动在代码中添加了如下部分,也是不起作用:后来找到这个博客:http://forum.eepw.com.cn/thread/312420/1/博客里面有这样一个回答,就是关闭入侵检测:我按照这样在RTC初始化后执行了这一句,还是不行,检查RTC的配置原创 2020-06-04 11:01:57 · 2387 阅读 · 1 评论 -
Error: L6407E: Sections of aggregate size 0x974 bytes could not fit into .ANY selector(s).
compiling user_mcuflash.c...linking...RTT_091_VCT\RTT_091_VCT.axf: Error: L6406E: No space in execution regions with .ANY selector matching spi.o(.bss).RTT_091_VCT\RTT_091_VCT.axf: Error: L6406E: No space in execution regions with .ANY selector matching原创 2020-05-27 14:59:11 · 7345 阅读 · 2 评论 -
UART串口发送卡在UART_WaitOnFlagUntilTimeout()函数出不来
cubemx生成F091VCTx工程配置,调试时发现uart时而打印,时而不打印,仿真进去发现uart卡在UART_WaitOnFlagUntilTimeout这个函数中出不来;接线也检查了,并且通过直接芯片上引脚上引出线也测试了,情况一样,刚上电有时能打印1s钟,打印1s钟后又不打印了,有时重新上电也不打印,通过各种检查,确定线路没有问题,那肯定就是程序出问题了。检查了程序,除了cubemx生成的串口初始化函数,也没有其他代码,因此还是找不到原因,只能求助百度了,查到这里http://www.stm3原创 2020-05-25 15:55:57 · 7481 阅读 · 0 评论 -
keil5编译遇到 Could not create/access path 问题解决方法
从别人那里拷贝过来的工程,keil编译遇到下面问题:解决方法:魔术棒里面listing的设置改一下就可以了,修改方法如下:原创 2020-05-21 16:17:57 · 3810 阅读 · 0 评论 -
uart+dma调试遇到的问题,发送卡顿
最近测试程序代码时发现uart+dma打印突然卡顿了,具体现象就是只有在dma缓冲区满的情况下,数据才会发送到串口打印出来。如dma发送缓冲区设为256时,我在while循环里打印“uart1 test print time.\r\n”这条语句,并不是执行一次send打印语句串口就显示打印一次,而是缓冲区满,也就是攒满256个字节才会进行打印处来。以前都是很正常的,最近测试突然就出现这种情况。一条一条的查找语句,发现dma缓冲区前面的static __IO不知道什么时候去掉了,加上之后,就会快速原创 2020-05-18 12:46:32 · 1237 阅读 · 0 评论 -
STM32F091 can通信配置,can波特率计算方法
以前从没有接触过can通信,最近开始接触can通信,网上搜过一些资料了解关于can通信的一些硬件知识,其实我认为can硬件知识大体了解就可以了,最重要的应用还是在can通信软件代码上的实现,因为can硬件提供了基础,在此基础上懂得怎样对can进行波特率配置以及过滤器配置就可以了。举个例子,stm32f091上配置SYSCLK=48MHz,can在APB1外设上,也配置为48MHz,can波...原创 2020-04-10 13:56:32 · 1302 阅读 · 0 评论 -
STM32F0芯片HAL库利用uart+dma+空闲中断+环形缓冲区实现不定长接收和不定长发送
最近在做F091芯片的项目,利用HAL库实现uart+dma的不定长接收和发送,并且要利用环形缓冲区,达到数据接收和发送都不会进行阻塞且不会丢失的目的。网上查了很多资料,也有很多关于这种的文章,但是几乎没有一个方式完美的,不是只有发送,就是只有接收,或者发送接收都没有实现环形缓冲区,而且发送只讲了怎么使用HAL_UART_Transmit_DMA()函数,但是没有完整的实现方案。本文章就是...原创 2020-04-09 15:40:17 · 4645 阅读 · 2 评论 -
关于STM32F091 调试RTC,读取时间年份总是不对的问题解决
在调试rtc时,通过hal库函数设置date,time后,读取的时间总是年不对,月日时分秒是对的,如图:通过这个连接中的问题http://www.openedv.com/thread-231322-1-22.html?/news/guonei/97663746655/h 找到一位网友的解决方法:按照这个方法确实解决了我的问题,将星期填上后,年份读取就正确了:代码实现...原创 2020-03-31 13:19:06 · 4084 阅读 · 9 评论 -
对于can通信过滤器的理解
以前没有接触过CAN通信,最近接触CAN通信,要调试F0芯片上的can通信,发送调试好了,接收总是只能接收固定id的数据,这主要和过滤器有关,通过对过滤器的设置可以过滤特定的canid的数据,也可以接收任意canid的数据,具体设置方法如下: CAN_FilterTypeDef sFilterConfig; sFilterConfig.FilterBank = 0; //过滤器0...原创 2020-03-30 19:42:45 · 6433 阅读 · 2 评论 -
STM32F0 SPI 读取W25Q64 读取数据不对的问题
直入正题,用的芯片是STM32F091RCT6, 用SPI读取W25Q64时,读取数据不对,主要原因是SPI的分频值配置的问题。当我将SPI分频值配置小于32的时候,读取的数据都不对,只有将分频配置成32,也就是速度是1.5MBits/s的时候,读取的数据才是正确的。看hal库spi的说明:#define GPIO_SPEED_FREQ_LOW (0x00000000U)...原创 2020-03-27 14:24:09 · 9825 阅读 · 7 评论 -
基于HAL库的DMA + 空闲中断实现 uart通信(stm32f103rc)
我的工程是用cubemx直接生成的,关于用cubemx生成工程网上有很多参考资料,这里不做过多说明。只看一下我的uart配置参数即可(只付上uart2的配置,uart1的配置同样):cubemx生成工程后会自动添加MX_USART1_UART_Init();MX_USART2_UART_Init();函数以及全局句柄:UART_HandleTypeDef huart...原创 2020-03-18 11:16:43 · 2746 阅读 · 2 评论 -
用cube5.5生成代码后用keil5打开,然后添加自己的文件夹,keil出现卡死[已解决]
解决方法:将生成的工程中最下面的绿色的cmsis删了就可以了。删除步骤:打开工程,点击配置按钮旁边的长的像色子的那个[manage Run-time environment]找到里面的CMSIS选项,打开,看到里面的[CORE]后面有个√,去掉这个就可以了.点击ok, 工程目录中就没有那个绿色的筛子了,如下图,这样就可以添加自己的文件夹和文件了参考:http://w...原创 2020-02-25 16:47:31 · 2482 阅读 · 5 评论 -
windows环境下 eclipse基于stm32的GCC交叉编译的 ST-LINK下载环境的搭建
参考文章https://blog.csdn.net/Neutree/article/details/50551919ST-LINK 下载、调试配置:1. ST-LINK下载配置1)下载安装STM32 ST-LINK Utility,我下载的是STM32 ST-LINK Utility v4.2.0 setup.exe,点击安装完成,然后再eclipse中选择Run-->Ext...原创 2019-12-09 15:32:25 · 1024 阅读 · 3 评论 -
stm32l151 低功耗调试笔记,功耗最低降到了3.3uA
最近做一个低功耗的项目,所用单片机是stm32l151c8t6-A,程序中在进入低功耗之前,将ADC, USART,TIMER, GPRS等都关闭了,功耗仍然在200uA,于是怀疑是硬件的问题,咨询原来的同事,他说电压芯片使能脚的分压电阻不能太小,果然在电源那里TPS76933使能脚的分压电阻那里有问题使能脚的分压电阻太小了是不行的,于是换了个大点的电阻100K,然后功耗就降到了20uA,...原创 2019-11-11 14:39:36 · 10206 阅读 · 5 评论 -
关于对stm32 的systick 的理解
首先看一下stm32l51的clock tree,并且有这样一段描述:systick有两个时钟源,一个是HCLD/8(即SysTick_CLKSource_HCLK_Div8), 另一个是HCLK.(即SysTick_CLKSource_HCLK)下图clock tree图黄色部分也标出了这两个时钟源。...原创 2019-10-30 11:02:00 · 1445 阅读 · 0 评论 -
关于stm32l151c8t6在stop低功耗模式下通过RTC alarm唤醒的方法总结
首先,看一下stop模式下的说明:这是stm32l1xx参考手册的说明,如果英文看不懂的话,可以查找stm32f10x的中文参考手册的说明看一下,意思差不多。//RTC时钟配置voidrtc_init(void) { uint32_t timeout = 600000; RTC_InitTypeDef RTC_InitStructure; EXTI_...原创 2019-10-29 13:59:24 · 3266 阅读 · 9 评论 -
eclipse下基于stm32 使用printf函数重定向的使用说明
大家都知道在嵌入式开发中将usart重定向到printf函数,在进行打印调试信息的时候非常方便,查了很多资料,大部分都是关于在keil下的printf重定向的说明,在eclipse下,对于printf的重定向和在keil下是不一样的,下面对实现方法进行说明:1.去ST的官方网站下载stm32的cube官方库,我下载的是stm321x 和stm32f1x的都下载下来了,将其中一个下载下来就...原创 2019-10-29 10:09:34 · 1672 阅读 · 0 评论 -
stm32l151c8t6-A单片机关于定时器的时钟配置和计算(定时1ms的配置)
首先来看一下STM32L151的clock tree, 可以看到TIM2-7是在APB1上的, APB1的最大时钟配置是32MHz, 接下来我的及进行一下我的项目中的始终配置说明,后续也会附上代码。我的项目中HSE用的是8MHz外部晶振,在项目配置中,我选择了PLLMUL=6,PLLDIV=/3, 这样算下来我的PLLCLK 大小为PLLCLK = 8 *6 /3 = 16MHz,然后我...原创 2019-10-29 09:34:34 · 5115 阅读 · 1 评论 -
关于sim808调试总是出现复位的现象的总结
在工作中要用到sim808的GPRS和GPS功能,调试过程中,第一天用锂电池供电,调试正常,模块可以正常注册到网络并建立TCP连接。第二天调试GPS的时候出现GPS命令没有回复,查了一天半的原因,原来是GPS命令后面没有加回车换行\r\n,加上后GPS命令就有反应了,如发送AT+CGNSPWR=1\r\n,回复OK.调通GPS后,接着回来再调试GPRS走一遍,发现注册不上网络了,回复+...原创 2019-10-23 10:39:56 · 513 阅读 · 0 评论 -
eclipse 交叉编译提示错误 :LocationType Symbol 'NULL' could not be resolved
在用eclipse GCC交叉编译环境进行嵌入式开发的过程中,有时会出现LocationType Symbol 'NULL' could not be resolved的提示错误,但是实际编译过程中没有这个错误,这应该就是eclipse本身自己解析代码的错误,为了不让这个错误现实(本身程序编译没有错误),可以将这个错误提示通过设置eclipse将这个错误关闭不进行提示。设置方法:wind...原创 2019-10-14 16:23:36 · 799 阅读 · 0 评论 -
如何使使 mfc combobox 的输入框只读
CEdit *pEdit = (CEdit*)m_comboCOM.GetWindow(GW_CHILD);// pEdit->SetReadOnly(TRUE);pEdit->EnableWindow(FALSE);m_comboCOM是combo box对象的变量。 GW_CHILD是combo box的第一个子对象。在http://blog.csdn.ne原创 2017-12-07 08:55:14 · 5848 阅读 · 1 评论 -
使用CSerialPort类编写串口通信程序的问题
转自:http://blog.chinaunix.net/uid-24517893-id-3032734.htmlCSerialPort是一个很好的串口通讯类,但它没有关闭串口的方法,如果对这个类的实现原理不了解,自行编写串口关闭方法可能会带来如下问题: 1、用closehandle方法关闭串口:由于调用类方法StartMonitoring后会生成一个串口通信线程转载 2017-07-05 08:37:46 · 806 阅读 · 0 评论 -
>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
转自:http://www.cnblogs.com/newpanderking/articles/3372969.html我的环境是同时安装了VS2008和VS2010>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏问题说明:当安装VS2012之后,原来的.NET 4.0会被替换为.NET 4.5。卸载VS2012时,不转载 2017-04-25 09:25:06 · 1193 阅读 · 0 评论 -
MFC程序使用ado,在win7系统上生成的程序,在xp系统上,打开数据库失败
MFC程序使用ado,在win7系统上生成的程序,在xp系统上,打开数据库失败,在关闭窗口时并且提示runtime运行错误。通过百度查找资料,找到以下解决方法:http://blog.csdn.net/magic_andy/article/details/9225073 参考一http://blog.csdn.net/jianzhanger/article/details/8970原创 2017-04-24 09:38:32 · 934 阅读 · 0 评论 -
eclipse stm32学习笔记
安装好stm32的eclipse开发环境后,打开同事(再次称作师傅吧,哈哈)写的程序,发现两个告警:Description ResourcePath LocationTypeInvalid project path: Include path not found (rtu_haorun_c\arch\st-m3l\stusb\inc).rtu_haorun_c pathentr原创 2016-11-01 15:47:29 · 1388 阅读 · 0 评论 -
mfc多线程学习运行过程中遇到ASSERT问题
一个基于对话框的程序,编译正常,但是运行时出现中断错误:根据断点跟踪:是在执行CDialog::OnInitDialog();这句的时候出现的错误,BOOL CAfxBeginThread1Dlg::OnInitDialog(){CDialog::OnInitDialog();// 将“关于...”菜单项添加到系统菜单中。// IDM_ABO原创 2016-10-16 13:01:30 · 1695 阅读 · 0 评论 -
JAVA环境下创建JSP文件报错: The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Pa
方法:项目上右击——>bulid path——>configure build path..然后按照下面步骤进行:这样错误就消除了。原创 2016-07-05 14:27:17 · 387 阅读 · 0 评论