- 博客(57)
- 资源 (4)
- 收藏
- 关注
原创 电赛2020A题心电信号测量比赛代码讲解。 无线运动传感器节点
这次的A题不是很难,直接开始吧初始化函数就不写上去了,没什么价值。我把所有代码打包了,想下载的点这里:(挖坑,还没审核通过)先把引脚标注好,好的代码风格会让你事半功倍/*心电图/RESET—PB10START—PB11/DRDY—PA8/CS------PB12MOSI---PB15MISO---PB14SCK-----PB13*//*串口通信1PA9PA10*//*温度模块PA0*//*蓝牙模块PA2PA3*//*按键模块PB8 按键PB
2020-10-19 20:58:50 5211 8
原创 单片机常用芯片系列(二)——DS18B20详解(2)——寄生电源供电(包括调试中遇到的问题,编程思路)
我在蓝桥杯的板子上看到,他的是寄生电源供电,也就是没有外接电源,靠总线高电平供电,低电平电容放电。编程之处略有不同。网上很多资料,我还是只说最难懂的点一、注意事项1.温度转换命令【44h】后面要加延时,而且总线要置1,提供上拉电流。send(0xcc);send(0x44);DAT = 1;delay1s();2.为了提高可移植性,可以这样写uchar way;send(0...
2020-03-28 22:55:03 5388 1
原创 结构体指针在函数中改变,但是函数运行完毕后回到主函数发现他没变(改变的是形参结构体指针)
如果你用的是结构体指针,是否遇到了在函数中改变他,但是函数运行完毕后回到主函数发现他没变的问题?本文给你讲明白函数没有改变结构体的值?void bbb(struct node *p){ }对p操作了半天,回主函数一看没反应?先别急。先举个很简单的例子,我们都知道,在函数中无论如何你改变形参,主函数里的实参都没反应,下边的a就是一个例子。这个函数调用之后,主函数中不会有反应。我们就会用指向他的指针,也就是他的地址来进行传参,这样就可以直接修改地址的值,相当于从娘胎里就给你变形。void aa
2021-11-09 22:27:00 4730
原创 双向链表的创建以及增删改查
实现起来其实不难,于是我把代码做了优化,模仿了stm32的库函数哈哈哈,便于理解和修改。不足之处请指出#include "stdio.h"#include "stdlib.h"//宏定义#define ElementType int#define uint unsigned intElementType pa[6] = {1, 2, 2, 3, 5, 7};ElementType pb[5] = {2, 3, 4, 6, 8};ElementType *pc;uint MaxLengt
2021-09-26 22:58:52 1458
原创 KMP字符匹配算法
比如主字符串A:ABACCCC和字符串B:ABADD要在主字符串A里查找有没有字符串B,先比较相同的公共字符串,ABA就是公共字符串,因为A和B的这三个一摸一样,然后A在开头和结尾一样,所以A就是公共前后缀。k就是公共前后缀的长度,在这里是1,就是A,所以就是从k+1开始比较,也就是从A的下标1加上1,也就是2开始比较,也就是B。也就是:ABACCCC__ABADD__12345...
2021-09-13 21:45:23 1269
原创 数据结构与算法分析c语言描述第二版第一章引论课后题答案
课后题1.51.61.71.81.91.101.7,1.8,1.9我也没看懂1.5ab在一起,b在左边1.61.71.81.91.10ab用的就是前面的例程 的方法。
2021-09-08 21:50:31 545
原创 洗衣机水位传感器原理:检测水位频率
有跟管子连着水位和传感器,水越高,压力越大,电感越大,频率越低。其实就是rc,lc振荡回路,会放在模电里讲。
2021-09-05 00:38:31 3400
原创 一文读懂LM393 就是个比较器
1电压大于2,输出高电平1小于2,输出低电平。没了,就这么简单。电压比较器两路,意思是可以同时比较两个。省钱省地方下边是具体的
2020-12-29 16:24:39 8241 4
原创 c语言学习笔记(持续更新)
目录1.数组指针和指针数组——————————————————————1.数组指针和指针数组指针数组就是一个数组里边放的都是一个一个的指针数组指针就是一个指针,指向一个数组...
2020-10-22 15:57:32 257
原创 PID算法 c语言实现,简单易懂
https://blog.csdn.net/wzhcalex/article/details/69944223
2020-09-24 08:00:15 1076
转载 ucos操作系统(1)——OSTCBY,OSRdyGrp,OSRdyTbl
OSRdyGrp相当于列,有多少组,是一个变量OSRdyTbl是一个数组,每个数组元素是8位的,每一位代表一个优先级转载自https://blog.csdn.net/d521000121/article/details/53678252关于这三个系统变量,研究了好一阵子,也在网上查了不少资料,感觉挺乱的,就按自己的理解写得详细一点。希望能让人只看一篇博文就能搞懂这个是怎么用的。首先给出这三个变量的定义:INT8U const OSUnMapTbl[256] = {0, 0, 1, 0, 2,
2020-09-06 22:00:24 1961
转载 ucos操作系统(2)——OSTimeDly
时间管理函数有OSTimeDly()和OSTimeDlyHMSM()以前者为例,调用OSTimeDly()时:1.取消当前任务的就绪态,使之进入等待态;2.给OSTCBDly赋值,即将参数传至OSTCBDly,就是在等待态的时间;3.调用函数OSSChed(),立即调用调度函数。至于任务如何退出等待态,就需要进入每个节拍的中断服务函数OSTickISR(),当然此前需要先设置时钟中断向量以及时钟频率。对于OSTickISR()函数,其中调用OSTimeTick(),并在结束前调用中断退出函数OSI
2020-09-06 21:32:32 2082
原创 STM32从零开始(八)PWM
这个是用来控制她是输入捕获还是输出比较的,咱们pwm就是输出比较。所以要写的位有这几个:一般置pwm即可一般置1,为了安全,无法立即写入ccer的这个寄存器也是有用的这个是设置输出是高电平有效还是低电平有效和这个搭配着看,比如当cnt小于ccr1,110的时候是高电平,然后cc1p设置为0,oc1高有效,向上计数的话,那就是先亮再灭。http://www.360doc.com/content/14/1211/10/6828497_432083097.shtml 看这篇文章即..
2020-07-30 15:25:10 623
原创 git linux一些命令
mkdir xxxx 创建文件夹cd xxx 进入文件夹git init 初始化gittouch xxx.x 创建各种类型的文件git status 查询git当前情况git add xxx.x 把文件上传到缓存区git commit -m ‘add xxx.x’ 把文件从缓存区上传到正式区vi xxx.x 编辑这个文件ls 查询git上有啥...
2020-07-19 19:29:02 157
原创 STM32——FSMC里边贼难理解的一个,就是地址移位终于搞懂了
https://blog.csdn.net/call_lkc/article/details/76168485这篇文章讲的很详细,但是我终于理解了为啥地址右移了一位我们经常看到这句这个方括号是这样的本来是这样的,HADDR【27:0】意思是有28跟线,【25:1】的意思是第一根线到第25根线。HADDR[25:0] 位包含外部存储器地址,由于 HADDR 为字节地址,而存储器按字寻址,所以根据存储器数据宽度不同,当 Bank1 接的是 8 位宽度存储器的时候:HADDR[25:0]对应 FSMC
2020-07-10 21:25:39 4335 6
原创 STM32从零开始(六)外部中断
1.设置中断优先级分组。//类似于划分“阶级成分”2.设置某中断的中断优先级//类似于判定具体的“阶级成分”3.使能NVIC中的该中断//类似于“宣布判决”
2020-07-07 23:18:57 1049
原创 关于stm32抢占优先级和子优先级中难以理解的地方
他说的是4位,我一开始理解的是0123四个数。这样一看就理解了。3位就是可以2的三次方,也就是8。而响应优先级一位,就是2的一次方。2*8=16,所以就是16。这个寄存器好像在corem3内核里边,她外边没咋写。所以不用管了,知道咋用就行了#define NVIC_PriorityGroup_0 ((uint32_t)0x700) /*!< 0 bits for pre-emption priority
2020-07-03 22:15:03 1306
原创 STM32从零开始(五)详解RCC库函数
目录1.将RCC时钟配置重置为默认重置其实不用单独调用,因为系统会自动运行systemInit这个函数,将时钟在启动的时候置为72mhz。具体每句话其实就是把rcc寄存器不同的位设置一下,设置的结果看手册第六章最后一节,rcc寄存器那里,一个一个对应过去即可/** * @brief Resets the RCC clock configuration to the default reset state. * @param None * @retval None */void
2020-05-24 22:56:18 7351
转载 谈谈 C/C++ 中的 volatile
https://zhuanlan.zhihu.com/p/33074506文章引用自这里,直接看这篇文章就行,一下就能看懂。
2020-05-24 22:36:12 191
原创 STM32从零开始(四)详解GPIO库函数
/* ------------ RCC registers bit address in the alias region ----------------*/#define AFIO_OFFSET (AFIO_BASE - PERIPH_BASE)/* --- EVENTCR Register -----*//* Alias word address of EVOE bit */#define EVCR_OFFSET (AFIO_
2020-05-24 13:13:26 6353 2
原创 STM32从零开始(三) 点亮led灯并且配置时钟为72mhz
stm32的时钟就是这个图。时钟她是一级一级整上去的。通过pll锁相环,把外部晶振的频率给他顶上去。再需要多少就分频多少,得到需要的频率我们要通过外部晶振HSE来得到apb2处的点亮gpiob处的流水灯。需要的是72mhz的频率所以看图是这么个路线但是这个是要配置的。所以这个是内部时钟,上电以后内部时钟先运行,让cpu能够切换到外部时钟那里去。所以我们看图,先是这个,决定输入的...
2020-05-06 17:03:22 4252 2
原创 STM32从零开始(二) 点亮led灯
先看头文件#ifndef __GPIO_LED72MHZ__#define __GPIO_LED72MHZ__#define GPIOB_BASE 0x40010c00#define GPIOB_CRH (GPIOB_BASE + 0x04)#define GPIOB_ODR (GPIOB_BASE + 0x0c) #define rGPIOB_CRH (*(unsigned int...
2020-05-03 21:19:29 583
原创 STM32从零开始(一) 一些遇见的错误(一直更新)
一GPIO_LED72MHZ.c(10): warning: #1295-D: Deprecated declaration ledInit - give arg typesGPIO_LED72MHZ.c(10):警告:#1295-D:不赞成的声明ledInit—给出参数类型解决办法://void ledInit();因为括号里没加void造成的报错,这个就错了void ledInit...
2020-05-03 18:57:49 1540 2
原创 单片机常用芯片系列(四)——at24c02详解
这三个引脚其实是地址,如果需要一个单片机上带一堆at24c02,就需要很多地址。这里不需要,所以全接地i2c总线就这三根,wp给他接地让他不保护,配置时钟高电平时数据线下降沿是开始,上升沿是结束传送1位数据时,先把数据准备好,然后再给时钟信号每个字节完了都是一个应答信号,低电平为应答,高电平不是应答。记得把总线释放,也就是置一前4个固定1010,后三个全部接地,也是0.最后一个1读0写...
2020-04-07 18:22:38 5871 1
原创 单片机常用芯片系列(四)——ds1302详解
前两个是地址,后两个是每个地址里边的具体的情况。比如要初始化了,就这样写void Ds1302Init(){ uchar n; Ds1302Write(0x8E,0X00); //禁止写保护,就是关闭写保护功能 for (n=0; n<7; n++)//写入7个字节的时钟信号:分秒时日月周年 { Ds1302Write(WRITE_RTC_ADDR[n],TIM...
2020-02-17 16:51:08 4410
原创 单片机常用芯片系列(三)——红外通信
就是反码,写代码的时候反过来即可其中前16位为用户识别码,能区别不同的红外遥控设备,以防止不同的机种遥控码互相干扰。后16位为8位的操作码和8位的操作反码,用于核对数据是否接收准确。收端根据数据码做出应该执行上面动作的判断。#include "uart.h" //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; //对数据类型进行...
2020-02-14 12:15:16 952
原创 单片机常用芯片系列(二)——DS18B20详解
温度范围:-55℃到125℃默认12位精度,0.0625℃一格推挽电路和漏极开路的帖子:https://www.zhihu.com/question/28512432https://blog.csdn.net/u012604283/article/details/84647237代码开始ds18b20.c...
2020-02-11 20:52:32 5472
原创 单片机常用芯片系列(一)——TFTLCD-R61503B详解(1)——屏幕显示
采用8080通信模式,5个控制引脚,16根数据引脚。此乃接口时序一、底层时序文件tftlcd.c开头定义#include "tftlcd.h"#include "font.h" #include "uart.h"#include "stdlib.h"//LCD的画笔颜色和背景色 u16 FRONT_COLOR=WHITE; //画笔颜色u16 BACK_COLO...
2020-02-08 20:18:07 5710 2
转载 KEIL C51 ERROR L107: ADDRESS SPACE OVERFLOW的解决办法
ERROR L107: ADDRESS SPACE OVERFLOW用KEIL选用small模式编译一个程序时老时出错,信息如下。*** ERROR L107: ADDRESS SPACE OVERFLOW… …Program Size: data=217.6 xdata=0 code=5314Target not created芯片我选的是AT89C52,RAM有256呀,怎么会OV...
2020-02-08 13:42:29 8208
转载 c语言多文件编程,即main文件调用其他.c文件的方法
首页博客学院下载论坛问答活动专题招聘APPVIP会员博客之星写博客5c语言多文件编程,即main文件调用其他.c文件的方法原创 天泉证道 最后发布于2018-11-14 14:46:32 阅读数 4047 收藏展开c语言多文件编程,即main文件调用其他.c文件的方法。两种方法的区别就是,gcc编译时,是否加b.c文件,不加的话,就在a.c文件里面,加#in...
2020-01-29 20:23:09 17367 2
原创 透彻解析旁路、去耦的联系与区别
耦合是指两个或两个以上的电路元件或电网络等的输入与输出之间存在紧密配合与相互影响,并通过相互作用从一侧向另一侧传输能量的现象。说白了就是上下两级会相互影响的现象叫做耦合。但是因为电路中前后级的需求电流不同,这时就会对前后级电路产生冲击,耦合电容就是吸收这些冲击的。在电子电路中,去耦电容和旁路电容都是起到抗干扰的作用,电容所处的位置不同,称呼就不一样了。对于同一个电路来说,旁路电容是把输入信号中的...
2019-11-25 20:18:48 1614
转载 去耦电容
在电子电路中,去耦电容和旁路电容都是起到抗干扰的作用,电容所处的位置不同,称呼就不一样了。对于同一个电路来说,旁路(bypass)电容是把输入信号中的高频噪声作为滤除对象,把前级携带的高频杂波滤除,而去耦(decoupling)电容也称退耦电容,是把输出信号的干扰作为滤除对象。去耦电容用在放大电路中不需要交流的地方,用来消除自激,使放大器稳定工作。从电路来说,总是存在驱动电源和被驱动的负载。如...
2019-11-25 19:42:13 351
转载 单片机与电脑接口(TTL与RS232电平模拟转换)电路及工作原理分析
RS232接口概述RS232接口又称DB9接口,是现在主流的串行通信接口之一。由于RS232接口标准出现较早,难免有不足之处,主要有以下四点:1)接口的信号电平值较高,易损坏接口电路的芯片,又因为与TTL电平不兼容故需使用电平转换电路方能与TTL电路连接。2)传输速率较低,在异步传输时,波特率为20Kbps;3)接口使用一根信号线和一根信号返回线而构成共地的传输形式,这种共地传输容易产生...
2019-11-25 19:30:46 3985
转载 高频滤波电路(电源那里的一大一小两个电容)
通信原理实验虽然结束有些天了,但是通信原理实验指导书上的滤波电路(如图1所示)一直在纠结着自己。改滤波电路跟自己之前见过的不大一样,两个滤波电容的容值是相等的,而这个电路的两个滤波电容的容值是不相等的,而且它们之间的值差别极大。这就很纳闷了,这到底是为什么呢?碰到问题可不能置之不理。自己在图书馆查阅了一些电子电路分析和器件特性的相关书籍杂志,终于把问题弄清楚了。原来这是一个电源的高频滤波电路...
2019-11-22 20:37:50 9291 2
原创 外部中断
#include "reg52.h" sbit k3=P3^2;sbit k4=P3^3;sbit led=P2^0;sbit beep=P2^1;void delay(int i){ while(i--);}void main(){ EA=1; EX0=1; EX1=0; IT0=1; IT1=1; PX0=0; PX1=1; while(1);}...
2019-11-06 21:34:32 179
原创 16点阵
/**************************************************************************************实验现象:下载程序后,LED点阵显示数字0 接线说明: (具体接线图可见开发攻略对应实验的“实验现象”章节) 1,单片机-->74HC595模块 P34-->SE ...
2019-11-06 21:32:22 378
原创 十二分频
就是十二个时钟周期是一个机器周期单片机中的12分频是单片机的标准运算速度是晶振的12分之1,指的是12个周期算为1个周期,即相当于频率为原来的12分之一。 单片机中的部件都是在用晶振12频后的一个机器周期在跑。通俗的说单片机寄存器完成加动作,正好是一个机器周期。而时钟周期 为 1/12mhz=1/12us;机器周期=12个时钟周期=12 * 1/12us = 1us;也就是计时器每加一需要的...
2019-11-06 20:04:06 3523
原创 按键控制直流电机旋转
/**************************************************************************************实验现象:下载程序后,直流电机旋转大约5S,然后停止 接线说明: (具体接线图可见开发攻略对应实验的“实验现象”章节) 1,单片机-->五线四相步进电机模块 P10-->IN1...
2019-11-02 21:53:04 737
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人