单片机
宿管大爷
cv工程师
展开
-
蓝桥杯蜂鸣器和继电器你不知道的秘密
本文描述了一个蜂鸣器和继电器非常隐蔽的问题,稍微不注意就可能导致程序出现我们意想不到的bug,希望大家看完这篇文章能够了解这我所说的这个问题并日后加以避免。祝大家都能金榜题名!!原创 2022-03-01 23:01:32 · 554 阅读 · 1 评论 -
利用定时器产生时间片的误差造成程序阻塞--蓝桥杯第七届单片机组程序debug
主函数中有长时间的定时,并且时间维度较长,随着执行次数的增多,这样就会有很大的概率导致程序的不按照我们预定的逻辑执行,并出现一些预想不不到的问题。比如,某一段程序在观察的现象上似乎是被阻塞了!!!原创 2022-02-23 23:56:46 · 400 阅读 · 2 评论 -
pcf8591电压测量数据异常分析
数据溢出导致数码管显示异常原创 2022-02-14 23:35:30 · 1105 阅读 · 0 评论 -
蓝桥杯单片机之主函数设计技巧
主要描述如何构建主函数,调试程序的思路以及介绍个人经验总结出来的编写、调试模块的顺序。--怕什么真理无穷,进一寸有进一寸的欢喜。原创 2022-02-14 22:13:09 · 425 阅读 · 0 评论 -
keil中c文件无法编译
问题描述:如果c文件无法编译,编译按钮呈现灰白色,如下图:问题解决:可以检查一下是否将文件加入了组中,如图所示:如果组中没有该文件,即可在组中加入,并尝试编译。原创 2022-02-11 19:38:41 · 3617 阅读 · 0 评论 -
DS18B20读取温度导致数码管闪烁问题
一定程度缓解数码管闪烁问题原创 2022-01-24 00:48:15 · 4842 阅读 · 6 评论 -
DS18B20负温度读取
懂得都懂,可能用不到,但绝对没有坏处,是吧。原创 2022-01-23 22:50:38 · 2052 阅读 · 0 评论 -
STM32跑马灯实验
实验采用正点原子精英板硬件配置LED0-PB5LED1-PE5GPIO输出模式:推挽输出操作IO口必须引入源文件和头文件:stm32f10x_gpio.c/h初始化函数:void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);读取输入电平函数:uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);(one b原创 2022-01-18 14:55:34 · 547 阅读 · 0 评论 -
STM32工程建立步骤(库函数)
正点原子官方教程提纲原创 2022-01-17 18:14:13 · 335 阅读 · 0 评论 -
warning:In file included from...
warning:In file included from..._mick_dos的博客-CSDN博客https://blog.csdn.net/qq_41853209/article/details/115261386转载 2022-01-15 19:25:12 · 6639 阅读 · 0 评论 -
error C279: ‘parament‘: multiple initialization
出现这个问题可能是在头文件中没有声明全局变量,即缺少extern也有可能是因为声明变量时,不小心给变量初始化了(即赋值),这也是不允许的原创 2022-01-10 22:29:23 · 6115 阅读 · 0 评论 -
error C100:unprintable character 0xA3 skipped
代码中出现中文输入法!原创 2022-01-07 18:45:44 · 3668 阅读 · 1 评论 -
error: non-ASM statement in naked function is not supported
(36条消息) ../Libraries/core_cm3.c(445): error: non-ASM statement in naked function is not supported_Nonechance的博客-CSDN博客https://blog.csdn.net/weixin_45950842/article/details/115582153入门32的第一个报错,感谢大佬。果然32报错都是这么强大,差点被新建工程吓退。哈哈。...原创 2021-12-11 23:59:20 · 1523 阅读 · 0 评论 -
ERROR L104:MULTIPLE PUBLIC DEFINITIONS
重复定义。在头文件中声明全局变量时,不要忘了添加extern。原创 2022-01-06 15:22:58 · 520 阅读 · 0 评论 -
WARNING L10:CANNOT DETERMINE ROOT SEGMENT
导致这个错误的原因可能是main函数发生了错误。比如我第一次发现这个错误就是没有写main函数就直接编译链接。原创 2022-01-06 12:53:03 · 9032 阅读 · 5 评论 -
按位异或实现十六进制数按位反转
我们如何用一种简单的方法实现对十六进制的数按位翻转功能?异或的功能是:相同取0,相异取1;一个数跟0异或,则保持,一个数跟1异或,则翻转;例如:实现0X01最后一位的翻转,只需要和0X01异或一下。在比如:实现0X01的第二位的翻转 只需要和0X02异或一下。unsigned char u;u=0x01;u ^= 0x01; //最低位和1异或,实现翻转;其他位和0异或,保持不变...原创 2021-12-14 23:55:11 · 1169 阅读 · 0 评论 -
PCF8591的DAC模式下电压输出范围
情况是这样的,当我写完DAC模式的程序后,DAC转换函数的输入参数是0~255之间的数,然后当我把参数设置为125时,下载到单片机后,发现电压并不是VCC的一半。查阅资料知,原来输出电压和参数是有一个计算公示的:Vout=4850/255*value。其中Vout时输出电压,4850时参考电压,跟电路设计的有关,value则是我们DAC转换函数的输入参数。这就解释了为什么我测量的数据不是VCC的一半了。...原创 2021-12-04 19:42:54 · 1483 阅读 · 0 评论 -
error : not in formal parameter list和invalid storage class
情况是这样的,我在一个C文件中写了一个新函数后,并在主函数里使用了这个函数。在未写入这个函数时,程序是没有错误的。但是写入这个函数后,编译链接后,却突然出现很多报错。查明原因后,发现是在头文件声明时,未写分号导致的。...原创 2021-11-29 09:12:37 · 2559 阅读 · 1 评论 -
error C141: syntax error near ‘}‘, expected ‘hdata‘
程序中出现了多余的'{'或者'}',找到并删去即可解决问题。原创 2021-11-29 08:57:20 · 23402 阅读 · 0 评论 -
WARNING:UNRESOLVED EXTERNAL SYMBOL 和REFERENCE MADE TO UNRESOLVED EXTERNAL
当编译连接后,Keil报警告:reference made to unresolved external 和 unresolved external symbol时,请检查是否将c文件添加进了Gruop组中。如下图即在main组加入所缺少的c文件。这仅仅是这种警告的一种解决办法,其原因见可以百度。这种办法不好使时,可以尝试找出这种报错的真正原因。...原创 2021-11-28 21:27:28 · 2414 阅读 · 1 评论 -
对单片机通信方式(中断和轮询)的理解
在了解单片机和外设通信的时候,我们不仅要了解通信的协议,我们通信的方式。其中通信协议就像是我们说话的语法,如果语法错了,那么外设就一个字听不懂了;如果通信方式错了,外设就可能就理解不了我们说话的意思了。 在我学习51单片机的时候,一些资料说通信的方式有两种,分别是中断和轮询,并且中断会占用更少的CPU资源。当时我看的似懂非懂就开始写(抄)程序。但是这个一定是对的吗?我们先谈谈单片机发送一个字节的数据。如果我们要连续每隔一段时间发送一个字节数据,我们首先就要向寄存...原创 2021-11-05 18:59:11 · 1917 阅读 · 4 评论 -
滤波——去耦——旁路
1、滤波电容 滤波电容用在电源整流电路中,用来滤除交流成分,使输出的直流更平稳。从使用电路的频率不同,可以将滤波电容分为低频滤波电容和高频滤波电容。低频滤波电容主要用于市电滤波或变压器整流后的滤波,其工作频率与市电一致为50Hz;而高频滤波电容主要工作在开关电源整流后的滤波,其工作频率为几千Hz到几万Hz。使用时切忌不可以将低频滤波电容用于高频电路,否则会出现产生太大的热量,可能会烧坏电容。 2、 去耦电容 高频信号,如RF信号通过信号线时,会产生干扰,而干扰的进入方式就是通过电磁辐射。去原创 2021-11-04 22:04:57 · 1814 阅读 · 0 评论 -
warning C294: unreachable code
可能提示的代码段没有问题,但是代码段在无限循环后面,程序不可能运行到这一步,因此要将它放在无限循环前(其他原因同理)。原创 2021-10-13 22:22:53 · 12723 阅读 · 1 评论 -
基于PCA模块的16位捕获模式解析PPM信号
/*这是利用PCA模块解析PPM信号的代码,其中uart_send.h头文件是我之前编写的串口通信例程,现在- 利用串口通信将解析的PPM信号发送给PC端,而PCA模块解析代码的绝大部分我都是基于STC14F2K60S2 的用户手册的参考例程所编写,intrins.h文件是参考例程中所引用的文件,具体作用我并未进行了解 其中,我利用串口确实接收到了一批数据,但并未检验数据的正确性。我在下面也贴出了程序中所预编 译的文件,肯能会比较啰嗦,这是因为所包含的文件中还有其他功能的函数设置。*/.原创 2021-09-29 22:49:40 · 718 阅读 · 0 评论 -
基于STC15的JY901B串口通信例程
#include <STC15F2K60S2.H>#define FOSC 12000000 //时钟频率#define BAUD1 9600 //设置波特率bit Tflag=0; //串口1的发送函数允许位bit Rflag=0; //串口2的接收函数允许位#define S2RI 0X01 /*由于S2CON.原创 2021-09-16 21:49:04 · 704 阅读 · 0 评论 -
keil中常见error与warning
error: (1)ERROR L107: ADDRESS SPACE OVERFLOW (2))ERROR L105: PUBLIC REFERS TO IGNORED SEGMENT (3)ERROR L104: MULTIPLE PUBLIC DEFINITIONS(4) error C263: save/restore: stack overflow/u...原创 2021-09-15 18:04:45 · 1083 阅读 · 0 评论 -
基于STC15系列单片机的串口中断例程
#include <STC15F2K60S2.H>#define FOSC 12000000 //晶振频率#define BAUD 9600 //设置波特率unsigned char ruart(); //串口接收一个字节数据void tuart(unsigned char trdate); //串口发送一个字节数据.原创 2021-09-13 19:08:48 · 2372 阅读 · 0 评论 -
MOS科普级知识点
N型(negative):纯净硅晶体中掺入五价磷原子,此时磷原子最外层多出一个自由电子,自由电子带负电,故称为N型半导体,N型半导体无论正接还是反接都会导通P型 (positive):纯净硅晶体中掺入三价硼原子, 此时硼原子最外层就缺少一个电子,用空穴代替缺失的这个电子,空穴吸引电子对外显正电,故称为P型半导体,需要注意的是P型半导体里面不全是空穴,它里面也有自由电子的存在,只不过没有N型半导体的多(关于半导体另外一篇文章详解)N型MOS(NPN型): 分别在N型半导体上引出金属电极(分别为漏..原创 2021-08-13 22:49:29 · 1025 阅读 · 0 评论 -
数电大纲笔记
1、基本逻辑门电路 1)与门、或门、非门、或非门、与非门、或非门、与或非门(逻辑功能分类) TTL集成门电路、CMOS集成门电路(电路结构) TTL:输入端和输出端都用三极管的逻辑门电路 TTL电路输入端悬空时就相当于输入高电平 CMOS:用互补对称MOS管构成的逻辑门电路 相对TTL电路的特点:功耗极低;抗干扰能力强;电源电压范围宽;输出信号摆幅大(UOH约为VDD,UOL约为0V...原创 2021-08-12 23:15:21 · 2546 阅读 · 0 评论