自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (2)
  • 收藏
  • 关注

原创 C中有符号和无符号运算

请注意在C和C++中,在整数的双目运算符中,如果两个整数数据的符号类型不一致,那么在运算时会转换成无符号进行运算。即原先有符号的会转换成无符号的进行运算。举例: uint32_t a = 10; int32_t b = -1; if(a > b){ printf("a > b"); }else{ printf("a < b"); }以上程序运算结果是 “a < b”如果将转换成无符号数据则为:0

2021-12-23 18:48:33 811

原创 FREERTOS内核时钟不对问题记录

目录问题问题定位问题分析解决办法取消定义configSYSTICK_CLOCK_HZ总结问题在使用RTOS时,突然发现RTOS的时钟不太对劲,具体表现在使用vTaskDelay或vTaskDelayUntil时发现延时时间并不对,大致为目标的10倍左右。,问题定位在检查许久后发现问题在configSYSTICK_CLOCK_HZ,这个定义上。原先对于这个宏的原始理解就是,首先只针对Cortex-M可用,然后就是如果Systick和系统时钟一样就无须定义,不一样

2021-12-16 21:42:39 1853 1

原创 C标准库-va_list

目录说明:补充说明:原型原型说明原理举例说明实际使用理解printf说明:va_list是C标准库<stdarg.h>的一个可变参数列表,常用于函数传入不定数量的参数,使用时只能放置于参数的最后面(即最后一个参数)。补充说明:如果需要详细理解va_list需要明白一个原理,也就是函数参数在栈区是如何存储的,下面我们来说明一下在调用一个函数时各个参数是在栈区是如何存储的:1、首先明确一个知识,C中,堆是自下向上增长的,栈是自顶向下增长的。2、

2021-11-28 17:24:06 1119

原创 移植FreeRTOS前准备1-os的中断配置

前言在使用os前,我men'dou'zh在上一节中在完成了工程创建后,我们准备开始移植RTOS在移植前,需要考虑的第一个问题os的中断是如何配置。

2021-06-16 13:22:13 436

原创 F103系列建工程

前言目录前言

2021-06-14 17:13:38 897 2

原创 STM32读写内部flash注意点

STM32读写内部flash注意点先说注意点怎么写怎么读的总结先说注意点1、写之前的第一步是要先解锁flash,解锁后最好清除下所有的flag,然后是擦除操作,然后是写,最后写完加锁保护flash。写有个写双字库函数(FLASH_ProgramDoubleWord)不能用,因为没有外部Vpp,怎么才有外部Vpp看点3。2、flash擦除的最小单位是扇区。3、flash擦除操作正常情况下使用电压使用VoltageRange_3就行,只所以不使用VoltageRange_4如下:VoltageRang

2021-03-03 17:05:15 1541 1

原创 stm32 串口RX上拉还是浮空

根据个人实际开发经验,串口RX引脚能上拉就上上拉,如果配置成浮空时会存在一定收到杂乱数据情况。这个问题困扰了一下午就是找不出为何我是串口1发数据,串口2却能收到类似的数据,他们之间明明没有任何关系。找了一下午最终发现因为杜邦线浮空加上RX为浮空输入导致的问题,改成上拉成功解决问题。所以啊还是得自己做PCB,避免使用杜邦线。...

2021-01-15 17:55:14 5943

原创 解决STM32串口丢失第一个字符

在使用STM32串口时可能会发现一个问题就是发送字符串时第一个字符缺失情况。解决办法在发送字符串前加入以下代码:if(!(USART1->SR&USART_FLAG_TC)){ USART_ClearFlag(USART1_COM,USART_FLAG_TC); }// ...发送代码原因分析首先,看以下出现这种问题的代码void usart2TxString(uint8_t *str,uint8_t length){ uint8_t index = 0;

2021-01-10 16:36:06 2493 2

原创 安卓点击页面其他地方取消EditText的焦点

直接在父布局上面设置以下参数:android:focusable=“true”android:clickable=“true”android:focusableInTouchMode=“true”代码中都有直接对应的set函数直接设置,当点击父布局时Edittext的焦点就消失了。

2020-11-22 19:23:43 1377

原创 彻底明白JS变量作用域

JS变量作用域牢记一段句话下面来理解下这段话作用域(以下均摘自javascript高级程序设计)没有块级作用域变量作用域总结参考牢记一段句话JS没有块级作用域,只存在作用环境,一个函数就是一个最小的作用环境,一般不在函数作用域里面的那就是在全局作用域中。于是得到,只要在函数以外定义的变量都是全局变量,在函数内部定义的就是只在这个函数作用域中的变量即局部变量。注意两个点:不加var声明的变量不管在哪里都为全局变量。2、由于JS不存在块级作用域,对于for和if中定义的变量隶属于函数作用域下面来理解下

2020-09-22 14:17:51 287

原创 2020-08-29

指针和常量前言顶层const和底层const指向常量的指针(const int *point)指向非常量的常量指针(int *const point)指向常量的常量指针(const int *const point)如何判断一个指针的类型前言C和C++中指针用的很重要,其中关于const 和指针的结合很容易迷惑,这里做一个总结,一般指针和常量const结合会出现以下三种情况:1、const int *point;2、int *const point;3、const int *const point

2020-08-29 22:02:08 69

原创 QT将QTableWidget数据保存至Excel

QT将QTableWidget数据保存至Excel主要参考一下三篇文章:这篇挺好的多看看里面的注释https://blog.csdn.net/qq_41605114/article/details/86597744上面注释看不明白的在结合这两篇多比较比较看看就明白了。https://blog.csdn.net/QIJINGBO123/article/details/87361933https://blog.csdn.net/LJianDong/article/details/8456519

2020-08-08 14:43:04 2200

原创 VS code下开发单片机或者STM32程序

一直想着编写单片机和32代码能不能换IDE,奈何关注了很久都没有发现一个比较好的。今天突然发现VS code竟然出了一个Keil Assistant的插件,虽说不能完全取代Keil,但是也足够方便与强大了,用着也是很舒服,比以前各种方法都简单多了。至于安装到也是非常简单,直接到vs code的扩展里面搜keil就OK了,至于教程插件里面的说的很清楚,当然也可以看下面的过程。1、搜索插件2、安装好后,需要重启下VS code(不然可能无法配置插件),然后打开配置3、配置插件-把那两个路径填上就O

2020-07-24 17:32:45 3354

原创 VS Code设置头文件和源文件切换快捷键

vs code设置.c和.h相互切换1、欢按照如下方式找到快捷设置2、在搜索栏中搜索switch3、然后就可以设置自己常用的快捷键了注意:注意快捷键冲突问题。设置的时候可以事先查下你所设置的快捷键还有哪些功能在用,直接在搜索栏上:“需要查快捷键”(记得加“”)。1、欢按照如下方式找到快捷设置2、在搜索栏中搜索switch3、然后就可以设置自己常用的快捷键了注意:注意快捷键冲突问题。设置的时候可以事先查下你所设置的快捷键还有哪些功能在用,直接在搜索栏上:“需要查快捷键”(记得加“”)。...

2020-07-24 10:12:30 12674

原创 QT信号与槽的连接后槽函数执行方式

问题信号与槽是QT特有的一种功能吧,当使用connect函数将一个信号于一个槽函数绑定过后,那么信号当emit后,就会执行与之绑定的槽函数,那么问题来了,这个执行方式是怎样的,是立刻的还是异步的。如果是立刻的就是以中断形式去执行的,异步的也就是通过事件循环方式去执行的。是以中断形式去执行的?既当信号emit后就立即去执行槽函数,槽函数结束后返回,继续执行emit语句后的语句。还是以事件循环形式执行的?既当信号emit后,当成一个事件,进入事件队列,经由事件循环,最终去执行。探索问题抱着上述问题,我

2020-06-20 12:52:30 5332 2

原创 一个程序是不是只能有一个Mutex lock

首先呢,一个Mutex lock顾名思义就是互斥锁。就按平时理解的你给一个房间加锁了,用别的钥匙能打开吗。肯定不行啊,那么假如我用了其它的钥匙开锁会发生什么,简单出现死锁呗,因为程序就等在哪里了,等着钥匙开锁成功。总结呢,如果你用一个锁锁住一个东西,就必须用相同的锁去解锁这个,不能另外new一个,去解锁,会形成死锁。...

2020-06-08 14:16:49 193

原创 QT设置子窗体透明的一种方法

直接设置子窗体的两个属性即可setWindowFlag(Qt::FramelessWindowHint, true);setAttribute(Qt::WA_TranslucentBackground, true);

2020-06-01 23:25:37 704 1

原创 充分了解STM32F407硬件\内部I2C(主模式)

STM32F4硬件\内部I2C驱动(主模式)此篇文章将带领你理解并学习STM32F4硬件\内部的I2C主模式去驱动slave I2C设备基础知识I2C模式I2C通信流程I2C地址I2C起始位与停止位使用STM32F407系列硬件/内部I2C首先我们先看主发送单字节发送多字节发送然后我们看主接收单字节读取两字节读取多字节读取代码设计写数据写字节代码写多字节代码读/接收数据读/接收字节代码读/接收两字节代码读/接收多字节代码参阅此篇文章将带领你理解并学习STM32F4硬件\内部的I2C主模式去驱动slave

2020-05-11 13:17:04 2869 2

原创 STM32F4外部中断设置

基础知识1、外部中断/事件框架: STM32F407一共有16+7条中断/事件线(如下图),也就是说在STM32工作过程中同时支持22条外部中断/事件。从上图也可以看出,所有的GPIO口都可以当作外部中断/事件源。但是同时只能有16条位于不同的GPIO口上的中断/事件源。2、中断/事件源配置: 选择EXIT0-16中断/事件线的中断/事件源在相应的SYSCFG_EXTICRx寄存器里配置。如配置EXIT0-3中断/事件线的源寄存器为下图:3、中断与事件: 在这里我们需要辨识以下中断与事件的区别:

2020-05-09 21:24:41 2678 1

原创 利用STM32F4系列基本定时器写延时程序

STM32F4系列基本定时器TIM6 TIM7前言必须了解定时器时钟频率影子寄存器代码设计参考前言在一些需要的情况下软件延时十分必要,有时为了测试方便大都直接用了while(–i)或者for循环大致延时下看看就可以了。当需要精确延时情况下一般需要定时器来定时,当然对于STM32系列单片机都有SysTick,一般都是用这个作为延时定时器。这两天突然想着用个基本定时器实现一个延时程序,想着几十分钟...

2020-05-04 13:44:22 3699

原创 Qt多信号链接一个槽函数时是查看是由哪个触发的

Qt多信号是查看是由哪个发出的问题描述解决办法问题描述我们可能会遇到这样一个问题,当有很多信号链接在同一个槽函数时,当执行槽函数时并不知道当前是谁触发了这个槽函数,此时我们需要用QObject::Sender()这个函数,在槽函数中查看触发该槽函数的Object指针,进而找出是触发的。解决办法语法:**类名 *tmp = qobject_cast<类名 *>(sender())...

2020-03-19 13:01:06 2244

原创 QT消除变量未使用警告

QT消除变量未使用警告方法首先:添加 #include 然后:使用Q_UNUSED(name),就可以在消除编译器在此函数内未使用此变量的警告。最后:如果想在整个程序中停止编译器对变更对未使用的警告,可以在.pro文件里加入:QMAKE_CXXFLAGS += -Wno-unused-parameter...

2020-01-06 20:52:47 1493

keilF103Template.zip

stm32F103系列工程模板

2021-06-14

外部中断与事件.zip

关于STM32F407外部中断/事件部分数据手册以及SYSCFG 外部中断配置寄存器部部分说明。仅仅是关于外部中断的不包含其他的,带书签。

2020-05-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除