自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(252)
  • 资源 (21)
  • 收藏
  • 关注

转载 Keil及SourceInsight护眼字体及背景色

Keil:https://blog.csdn.net/w5862338/article/details/50984536 SourceInsight:https://blog.csdn.net/dosthing/article/details/80013059    说明:背景色推荐使用上面Keil中配置的。 ...

2019-01-24 09:05:34 1487

原创 RT Thread利用STM32CUBEMX和RT Thread studio来创建模板工程

4、删除原有MX_USART2_UART_Init相关,尤其是main.c中对串口2的初始化,还有删除main线程中的HAL_Init();//因board.c中rt_hw_board_init()已经初始化过了。2、打开rtconfig.h //#include "finsh_config.h" 要使用shell,必须打开。HAL_UART_MspInit进行更改,变成串口1相关;3、若开启shell,希望将默认串口2变更为其它串口,如串口1,则将usart.c中的。来创建时钟树,再复制代码过来。

2023-05-16 16:32:26 858

原创 KEIL5(MDK5)出现能正常下载程序但不能硬件仿真的问题的解决办法

KEIL5(MDK5)出现能正常下载程序但不能硬件仿真

2022-10-10 16:13:53 3404 2

转载 C程序中的封装(转载)

写C代码的时候,最头疼的事情是哪些信息要暴露给外界,哪些隐藏在模块自身。如果不能处理好封装,那么久而久之,代码就自然演进成互相缠绕的意大利面条,不利于后期维护升级。

2022-06-25 20:34:49 1226

原创 C语言中位段实际运用

#include <QCoreApplication>//#pragma anno_unions //如果出现报错,共用体可能不支持匿名结构嵌套typedef union{ unsigned char BYTE; struct { unsigned char B0: 1; unsigned char B1: 1; unsigned char B2: 1; unsigned char B3: 1; .

2021-07-16 17:46:42 343

转载 2021-07-06

Keil MDK 编译器 AC5 和 AC6 优化选项重要内容和区别https://www.sohu.com/a/384927867_505803

2021-07-06 13:53:38 128

原创 C语言复杂类型声明如何解读

复杂类型的说明:从变量名处起,根据运算符优先级结合,一步一步分析。下面以一个比较复杂的类型(int * (*p(int))[ ])为例:第一步,p先与()结合,说明是一个函数,第二步,()内有一个int,说明函数有一个形参为int型,第三步与*结合,说明返回的是一个指针变量,第四步与[ ]结合,说明该指针变量指向数组,第五步再与*结合,说明数组中的元素为指针型,第六步说明数组中的指针元素的类型为int型,结论,所以这是:返回一个由整型指针变量组成的数组的指针变量的函数,函数入参

2021-02-24 16:57:17 403

原创 有符号与无符号比较原理分析

今天空了又重温了一下C,针对之前强哥提的问题,我仔细想了下,举个例子:假如当前buff[1]=0111 1111B; buff[2]=1000 0000B;buff定义为char类型,一般系统隐含为signed char,执行buff[1] == ~buff[2]运算时,buff[1]由signed char自动转化为int,又因buff[1]符号位为0,则高位补0,结果为00000000 00000000 00000000 01111111B;buff[2]由signe...

2021-02-07 17:06:18 439

原创 关于STM32空闲中断极限时间

今天空了专门做了关于STM32空闲中断极限时间的实验,结果如下:115200, 1个字节理论用时:1/115200=8.68us,实测发送一帧数据的字节间延时超过大约173us时,则出现空闲中断,173/8.68=20字节;38400, 1个字节理论用时:1/38400=26us,实测发送一帧数据的字节间延时超过大约517us时,则出现空闲中断,517/26=20字节;9600, 1个字节理论用时:1/9600=104us,实测发送一帧数据的字节间延时超过大约2075us时,则出现空闲中断,20

2021-01-15 17:05:01 8145 9

原创 STM32F1基本定时器单次触发模式

之前在网上求助,没见到多少关于STM32定时器单次触发的代码,今天自测了下可行。只需要将TIMx_CR1的OPM置1即可。

2021-01-07 10:36:42 2234

原创 HAL库回调函数自定义版本注意问题

HAL库回调函数自定义版本void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart){}如果未使用入参huart,会被编译器优化,仍然使用其__weak版本。注意哦!!!!

2020-12-24 16:19:27 368 1

原创 SPI读写函数寄存器版本(STM32F1xx,STM32F7xx实测完美)

void SPI_ReadWriteByte(SPI_TypeDef *spi,unsigned char *pTxData, unsigned char *pRxData, unsigned short Size)//寄存器版本{ volatile unsigned char tmpreg; unsigned short TxXferCount,RxXferCount; unsigned char *pRxBuffPtr = pRxData; unsigned char .

2020-12-07 15:30:34 1362

原创 MDK调试进入B .挂起时可能出现的问题

2020-12-01 13:42:50 1077 2

原创 source insight3.5 相对路径(保证可行)

source insight 相对路径source insight项目移动到另外一个地方时,会因为之前是绝对路径而导致项目中的文件都不可用,需要重新把这些文件添加一遍。解决办法为创建项目时设定为相对路径。我的项目路径:方法为:1、创建source insight项目,在创建时设定为“项目文件有自己的配置文件”,点击 “确定”;2、不添加任何的项目文件,直接点“关闭”;3、在菜单“Project\Project settings”中修改“Project Source D

2020-10-23 16:06:19 1041 1

转载 教你怎样将RS422转成RS485接口

RS232接口是一种用于近距离(最大30-60米)、慢速度、点对点通讯的通讯协议,在RS232中一个信号只用到一条信号线,采取与地电压参考的方式,因而在长距离传输后,发送端和接收端地电压有出入,容易造成通讯出错或速度降低。RS485/422接口采用不同的方式:每个信号都采用双绞线(两根信号线)传送,两条线间的电压差用于表示数字信号。例如把双绞线中的一根标为 A(正),另一根标为B(负),当A为正电压(通常为+5V),B为负电压时(通常为0),表示信号“1”;反之,A为负电压,B为正电压时表示信号 “0”

2020-10-16 09:33:25 30361

原创 浮点数内存布局(精华版)

1.float和double的范围和精度(1)float和double的表示范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位)+8bits(指数位)+23bits(尾数位)double:1bit(符号位)+ 11bits(指数位)+ 52bits(尾数位)(2)在数学中,特别是在计算机相关的数字(浮点数)问题的表述中,有一个基本表达法: (浮点)数值 = 尾数 × 底数 ^ 指数,(附加正负号)...

2020-10-15 17:04:53 1152

原创 STM32-硬件错误HardFault_Handler的处理方法(个人实战)

1、首先将startup_stm32f767xx.s(结合自己所使用的芯片MCU型号)栈和堆加大,测试是否还进入HardFault_Handler不;2、如果按照第1步处理后,仍然进入HardFault_Handler错误,则参照以下网址:https://blog.csdn.net/electrocrazy/article/details/78173558特别说明:stm32f7xx_it.c(结合自己所使用的芯片MCU型号)中的void HardFault_Handler(void).

2020-09-23 17:11:26 1074

原创 STM32串口空闲中断--我入的一个坑

串口使能后,如果关闭接收,再重新打开,空闲中断标志会被置位,再关闭接收,再重新打开,空闲中断标志又会被置位,如此反复。。。切记重新打开串口接收,马上清空闲中断标志(如果要使用空闲中断),否则会一直进入空闲中断!...

2020-09-15 09:07:59 5201 2

原创 stm32查看代码运行时间[stm32f7xx]

1、初始化1个定时器TIM5_Init(-1,108-1);//arr为最大值(unsigned int)-1,让其一直往上加,最大值42亿us,即最大可表示4200秒,分频系数psc为108,即每+1等于1usvoid TIM5_Init(u32 arr,u16 psc){ TIM5_Handler.Instance=TIM5; //通用定时器5 TIM5_Handler.Init.Presca...

2020-07-16 15:17:31 3234

原创 串口接收中断的巧妙运用(基于KEA128,用于接收不定长数据帧)

//uart.cunsigned int uart_rx_with_to(UART_Type *uart_prt, unsigned char *pbuffer){ unsigned int i = 0; unsigned int len = 0; while (1) { if (uart_prt->S1 & UART_S1_...

2020-01-14 16:14:50 1249 2

原创 nRF51822看门狗实战运用

#include <stdbool.h>#include <stdint.h>#include "nrf.h"#include "nrf_delay.h"#include "nrf_gpio.h"#define LED0 (18)#define LED1 (19)#define RELOAD_COUNT (32768*5 - 1) // 5 se...

2020-01-08 17:12:19 720

转载 NRF51822和NRF52832的主要区别

NRF51822和NRF52832的主要区别对于NRF51822和NRF52832的选择性相信大家也是非常困惑的,哪个性价比高?下面为大家讲下NRF51822和NRF52832的一个区别,让大家能够更好的快速选型加快研发产品进度!主要分为五大要点:一、功耗方面:nRF52832更是在nRF51822的基础上简直将功耗降低了一半二、更好的RF体现,主要是发射功率和接纳...

2019-12-25 16:52:11 1216 1

原创 STM32串口通信原理及HAL库代码stm32f1xx_hal_uart.c阅读分析

原理性说明://参考网址:https://blog.csdn.net/u010561799/article/details/89526266在USART的发送端有2个寄存器,一个是程序可以看到的USART_DR寄存器,另一个是程序看不到的移位寄存器,对应USART数据发送有两个标志,一个是TXE=发送数据寄存器空(单字节),另一个是TC=发送结束(多字节)。当USART_DR中的1字节...

2019-11-29 11:00:10 2934 1

转载 STM32的USART发送数据时如何使用TXE和TC标志【标准库】

http://bbs.21ic.com/icview-2514168-1-1.html

2019-11-28 09:07:21 626

原创 求将一个数的二进制位逆序算法

//输入1个字节,将其二进制位颠倒后,再输出1个字节//比如input:0110 0101 output:1010 0110uint8_t bit8_order_reverse(uint8_t ch){ uint8_t ch_new = 0; uint8_t bit_val = 0x80; uint8_t bit_val_reverse = 0x01; ...

2019-07-03 14:09:49 1095

原创 Keil官网下载软件开发包并安装

Keil官网下载packet:Keil官网首页里搜索芯片型号,比如:NRF51822,然后显示搜索结果,再在结果中点击MDK5 - Nordic Semiconductor nRF51822_xxAA,然后再点击"Device Family Pack"下面的"Download",将会下载.zip记得解压到C:\Keil_v5\ARM\PACK,可能还要细分目录,如果下载的是.pack文件,...

2019-07-02 10:29:02 4512

转载 将STM32 iap hex文件与app hex文件合并为一个hex文件

日前公司产品需要增加远程升级功能,boot loader程序写好后交予生产部门使用时他们反馈每个产品程序需要刷写两次(一个boot loader 一个app程序),生产进度变慢浪费时间,于是乎研究如何将两个程序并为一个。参考:http://blog.csdn.net/yx_l128125/article/details/13591743 后成功实现了将两程序合并为一个。IAP +APP 结...

2019-05-24 11:50:51 717

原创 STM32F10X创建新工程系统时钟设置注意事项

(1)STM32创建新工程时,最最重要的第一步就是要确定芯片外部晶振是多少,然后设置stm32f10x.h文件中的HSE_VALUE为外部晶振值;(2)设置系统时钟分频系数,在system_stm32f10x.c文件中,SetSysClockTo72()函数中,修改 【RCC_CFGR2_PREDIV2_DIV2 和 RCC_CFGR2_PLL2MUL8】 : RCC->CFGR2...

2019-05-23 14:14:46 324

转载 keil软件仿真时遇到的问题汇总

一、软件仿真步骤设置:1.target-->XTAL晶振设置(STM32,8.0)2.Option->Debug->Use_Simulator3.Option->Debug Dialog DLL默认是DARMSTM.DLL Parameter默认是-pSTM32F103VC二.keil仿真时,会遇到程序停在 /*Wait t...

2019-05-04 19:29:46 8367

转载 NVIC_PriorityGroupConfig() 函数在每个工程中只需要配置一次

NVIC_PriorityGroupConfig() 函数在每个工程中只需要配置一次刚开始接触NVIC,看到每个例程在配置中断的时候,都用到NVIC_PriorityGroupConfig() 函数,来给优先级分组,会让人以为在配置每个中断时,都需要用这个函数,其实不用的。NVIC_PriorityGroupConfig() 函数在每个工程中只需要配置一次。如果整个工程均没有配...

2019-04-26 09:44:27 3684

转载 USART_GetITStatus和USART_GetFlagStatus的区别

USART_GetITStatus和USART_GetFlagStatus的区别USART_GetITStatus()和USART_GetFlagStatus()的区别  都是访问串口的SR状态寄存器,唯一不同是,USART_GetITStatus()会判断中断是否开启,如果没开启,也会返回false。    ITStatus USART_GetITStatus(USART_Ty...

2019-04-25 19:44:51 2545

转载 STM32中断一些概念(主要是外部中断与中断通道)

主要参考:startup_stm32f10x_hd.s,stm32f10x_exti.h,stm32f10x_exti.c,另外,这里说的外部中断是相对于M3内核之外的,主要是外设中断如:如I/O口相应的外接设备中断,USART、Timer等其它本身固件中断。 对于cortex_m3内核所支持的240个外部中断[__IO uint8_t IP[240];...

2019-04-25 17:32:49 7367

转载 位操作(非常经典)

2019-04-23 19:09:58 173

转载 ADC 与实际电压值的关系

ADC 与实际电压值的关系1.首先确定ADC用几位表示,最大数值是多少。比如一个8位的ADC,最大值是0xFF,就是255。2.然后确定最大值时对应的参考电压值。一般而言最大值对应3.3V。这个你需要看这个芯片ADC模块的说明。寄存器中有对于输入信号参考电压的设置。3.要计算电压,就把你的ADC数值除以刚才确定的最大数值再乘以参考电压值。  比如ADC值为0x80,  实际值就...

2019-04-19 13:50:13 6774

原创 51单片机定时器的查询和进入中断处理

51单片机定时器可用两种方式处理:查询和进入中断处理。1.查询方式void Init_T0 (void) 定时器初始化{ TMOD = 0x01;//计时器模式 TH0 = (65535-65000) /256;//初装值为65536-65000,逐步+1,最后加到65535,溢出TF0=1 TL0 = (65535-65000) %256; E...

2019-04-18 10:18:49 10147 3

转载 关于NRF51822定时器/计数器的3篇文章

http://www.bubuko.com/infodetail-2427035.htmlhttps://blog.csdn.net/changyourmind/article/details/54019306#commentBoxhttps://blog.csdn.net/rical730/article/details/51016963注意:1、定时器溢出就是...

2019-04-17 16:23:04 712

转载 STM32定时器配置(TIM1、TIM2、TIM3、TIM4、TIM5、TIM8)高级定时器+普通定时器,定时计数模式下总结

https://www.cnblogs.com/pertor/p/9488813.html

2019-04-15 16:45:17 8346

原创 STM32片内FLASH操作

STM32学习笔记:读写内部Flash(介绍+附代码)https://www.cnblogs.com/pertor/p/9484663.html关于STM32像EPROM一样可以单字节写内部Flash的理解https://blog.csdn.net/xld_19920728/article/details/78928161STM32内部FLASH读写-通用https://blog.c...

2019-03-19 17:44:01 2283

原创 微处理器内存布局方面知识

51单片机程序程序存储空间(ROM)和数据存储空间(RAM)详解https://wenku.baidu.com/view/6cac6dbbafaad1f34693daef5ef7ba0d4a736d85.htmlSTM32F1(Cortex M3内核)存储器映射https://blog.csdn.net/fantastikman/article/details/73481021关于单片...

2019-03-19 13:47:45 476

转载 keil MDK编译完成后,Program Size: Code,RO-data,RW-data,ZI-data的意义

keilMDK编译完成后,ProgramSize:Code,RO-data,RW-data,ZI-data的意义转载 2016-02-12 15:27:07Program Size: Code=344 RO-data=252 RW-data=100 ZI-data=1024 看了多遍,总是忘,这次还是把它分析透了吧,若有不对的地方还请各位看官指正补充固定不变的代码存在ROM...

2019-03-19 11:31:12 950

STM32F103串口RS485_DMA收发寄存器版(实测完美)

支持STM32F1所有系列,项目实战代码,包你好用. 支持STM32F1所有系列,项目实战代码,包你好用 支持STM32F1所有系列,项目实战代码,包你好用 重要事情说三遍!!

2020-12-03

STM32F103串口DMA收发寄存器版(实测完美)

支持STM32F1所有系列,项目实战代码,包你好用。 重要事情说三遍!

2020-12-03

我的nRF51822学习.zip

针对nRF51822分模块,项目实战,绝对对你的开发有很大帮助。 欢迎大家下载使用。 针对nRF51822分模块,项目实战,绝对对你的开发有很大帮助。 欢迎大家下载使用。 针对nRF51822分模块,项目实战,绝对对你的开发有很大帮助。 欢迎大家下载使用。 重要事情说三遍!!!

2020-01-07

STM32 cubeMX CAN中断方式接收发送数据.rar

STM32 cubeMX CAN中断方式接收发送数据 帮助初学者开发。欢迎大家下载使用。STM32 cubeMX CAN中断方式接收发送数据 帮助初学者开发。欢迎大家下载使用。

2019-12-23

UART_DMA_不定长数据接收发送(HAL).rar

本项目是针对STM32平台下,串口收发采用DMA方式,接收不定长数据,发送接收实测都正常,完全可以适用于实战项目,欢迎大家下载!

2019-12-02

栈和队列(C版本).rar

栈和队列(C版本)源代码,欢迎大家下载学习。如果有疑问也可以给我留言。谢谢!

2019-09-23

STM32平台硬件软件SPI访问25Q16

STM32平台下,硬件SPI访问25Q16; STM32平台下,软件模拟SPI访问25Q16; 基于KEIL5开发环境;绝对好东东。

2019-02-27

C++下基于QT的String类自己实现

C++下基于QT的String类自己实现,个人编码,纯学习,有问题可以跟我探讨。

2018-08-31

namespace接口和实现分离最佳实战

基于QT下的命名空间的接口与实现分离,最佳实战做法,推荐使用!!

2018-08-21

QT串口开发

QT下串口开发,给大家提供参考学习。 绝对适合初学者,还有实际项目开发者。

2018-06-15

Qt之程序最小化托盘显示及操作

对于GUI程序,如果想要实现当最小化时,程序从任务栏消失,在系统托盘显示一个图标,表示此程序,并能在托盘内通过双击或者菜单使程序界面恢复。

2018-05-16

Qt5注册全局热键实现显示或隐藏对话框

最近写Qt程序需要用到注册全局热键,百度了好多,也没有找到成功的(可能我用的是假百度吧),几天后,找到一个案例,终于成功。本文全部是基于这个例程进行编写的。正所谓,站在巨人的肩上! 尽量写的详细一点,使新手学习过程中少走弯路。文章最后会有项目全部代码,仅供参考。

2018-05-16

QT仪表盘实例(项目实战)

qt下仪表盘实例,源代码给大家参考学习使用 可用于实际工程中。 qt下仪表盘实例,源代码给大家参考学习使用 可用于实际工程中。 qt下仪表盘实例,源代码给大家参考学习使用 可用于实际工程中。

2018-05-15

qt基于TCP的P2P聊天源代码

qt基于TCP的P2P聊天源代码,亲测可用,供大家学习! qt基于TCP的P2P聊天源代码,亲测可用,供大家学习!

2018-05-02

Qt基于UDP的P2P聊天程序

Qt基于UDP的P2P聊天程序; 运用QUdpSocket来实现,主要用于学习的目的。 Qt基于UDP的P2P聊天程序; 运用QUdpSocket来实现,主要用于学习的目的。 Qt基于UDP的P2P聊天程序; 运用QUdpSocket来实现,主要用于学习的目的。

2018-05-02

Qt主线程与次线程通信实例代码

Qt主线程与次线程通信实例代码,方便大家学习下载使用! Qt主线程与次线程通信实例代码,方便大家学习下载使用! Qt主线程与次线程通信实例代码,方便大家学习下载使用!

2018-04-26

C++类含有指针成员的编程处理

已经调试可用的代码,欢迎大家下载使用。 已经调试可用的代码,欢迎大家下载使用。

2018-01-26

C++友元应用实例friend

各种友元应用举例。欢迎大家下载使用。 各种友元应用举例。欢迎大家下载使用。

2018-01-23

基于UDP的JAVA聊天源代码(基于控制台

适合初学者学习用,当然也可以用于借鉴用。

2015-11-27

关于MySQL与MSSQL的JDBC访问实现例程

运行平台EClipse的源代码工程,希望对各位开发有所帮助!

2015-11-25

MFC-CEditView实现文件新建、打开保存功能

MFC-CEditView实现文件新建、打开保存功能,适合初学者学习用。

2015-10-21

空空如也

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

TA关注的人

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