
单片机
@枭白
爱你的人总会想着会不会被误会,又怎么忍心让你吃醋呢。羡慕的幸福也许是平凡的。梦想也许也是可触的,也许更是正在接触。给自己打点气,往前冲吧,Gavin Li小伙子。
展开
-
[C51]RAM开销及堆栈大小,keil工具
那么问题来了,如果程序比较大,设置的变量很多,那么可用于堆栈的内存是不是变得很小,答案是肯定的,但是可以通过将变量存放在外部RAM,避免内部RAM被过度使用,可以通过data xdata关键字来自己分配,也可以将keil配置成默认使用外部RAM(前提是具有外部RAM)可以看到堆栈往后移动了一位,但是对C语言熟悉的会发现一个问题,就是b不是动态局部变量吗,那么根据C语言的标准,b应该是创建在堆栈中,随着函数的结束释放掉,但是这里的b占用的是固定的地址,这个先不写了,有兴趣的可以看看下面的文章。原创 2024-01-24 16:42:48 · 2225 阅读 · 0 评论 -
arduino mega2560与stm32串口无法通信
在ex tx两根线上分别接一个100Ω的电阻。原创 2023-07-27 15:51:02 · 447 阅读 · 0 评论 -
封装选择,接地,分布电感,分布电容
另外,该电阻也往往只用在对信号完整性要求比较高的信号线上,例如读写线等,而对于一般的地址线和数据线,由于芯片设计总有一个稳定时间和保持时间,所以即使有点振铃,只要真正发生读写的时刻已经在振铃以后,就无甚大影响。一般来说,封装大的器件会比较便宜,小封装的器件因为加工进度要高一点,有可能会贵一点,然后封装大的电容耐压值会比封装小的同容量电容耐压值高,这些都是要根据你实际的需要来选择的,另外,小封装的元器件对贴装要求会高一点,比如 SMT 机器的精度。接地是一个极其重要的问题,有时关系到设计的成败。原创 2023-04-24 21:02:10 · 740 阅读 · 1 评论 -
电源电感选择
https://www.360doc.cn/article/441458_713264338.html原创 2023-04-18 21:51:32 · 137 阅读 · 0 评论 -
51单片机大小端模式
https://mp.weixin.qq.com/s?__biz=MzA3OTM2NzUxOA==&mid=203004332&idx=8&sn=1a8f8aa11848b4d5f4810d4670eb1e38&chksm=1659a59d212e2c8be102a4dd727f31a0df186b8227d0ee00557d942f0c80ac97b337085de57f&scene=27原创 2023-04-05 13:42:01 · 327 阅读 · 0 评论 -
单总线接口
https://www.zkii.net/tech/arduino/2070.html原创 2023-03-27 01:36:52 · 160 阅读 · 0 评论 -
C++字符串相加出错:invalid operands of types ‘const char [759]‘ and ‘const char [15]‘ to binary ‘operator+‘
但“”括起来的字符串被当成是字符串类型的,而非string类型,而字符串类型与C语言一样是不允许相加的,因此需要强制将其中一个字符串转为String类型。在C语言中字符串是不能直接相加的,在C++中,字符串是一个String类,允许相加。原创 2023-03-17 17:28:50 · 1818 阅读 · 0 评论 -
TFT_eSPI使用
项目名字自己定义,开发板(board)选择ESP32 Pico Kit(Espressif)使用的平台选Arduino。在includePath 和 path 的末尾中添加 TFT_eSPI 的路径。选择自己的路径并点击finish,等待创建完成(可能很久)开发环境:VS Code + PlatformIO。c_cpp_properties.json 文件。将解压的文件夹复制到工程的lib目录下。屏驱动是:ST7789_DRIVER。在工程中添加TFT_eSPI库。开发板:ESP32-S3。原创 2023-02-21 23:02:58 · 2317 阅读 · 2 评论 -
先验参数:parameter Prior
为什么要对参数设先验(Prior) - 知乎 (zhihu.com)原创 2022-11-15 22:46:07 · 348 阅读 · 0 评论 -
keil查看语句运行时间
设置晶振频率为实际晶振频率选择软件调试编译后开始调试在需要测的函数delay和下一句左边点击设置断点,电机复位与运行在左上角view设置里面调出逻辑分析仪logic analyzer点击全速运行,记录开始时间点击全速运行记录结束时间delay的运行时间为结束时间减去开始时间。原创 2022-11-02 12:19:48 · 1127 阅读 · 2 评论 -
【51】keil5软件仿真基本操作
选择软件仿真开始仿真点击设置断点运行到断点。原创 2022-10-21 17:55:59 · 2757 阅读 · 0 评论 -
【51】【keil】创建第一个工程(模板)
保存在刚才创建的文件夹C51_Project->Project下面,并取任意一个名字,然后保存。这是一个51单片机的工程模板,芯片型号:STC89C52(更具实际更改)。Project文件夹用来存放keil5编译软件生成的工程文件。readme.txt用来存放工程的介绍及相关说明。改名为main.c (文件拓展名也要修改)。找到Project下的工程文件,双击打开即可。选中main.c,点击添加,然后删除页面。User用来存放用户自己编写的程序文件。该文件夹用来存放引用库。在User中新建文本文档。原创 2022-10-21 17:11:25 · 2032 阅读 · 2 评论 -
【stm32】stm32f103c8t6购买建议(避雷)
事情得从今年电赛说起,当时购买物资的时候在一家店买了很多东西,然后为了方便报销,单片机也在同一家店买了,但是店里只有一种40多块钱的单片机,由于想到是学校付的钱就不计较了,然后就买了两个。做作品和比赛期间都是用的贵的那个,比赛结束后,不知道什么原因,我换了一下便宜的单片机上去,发现作品中有一个功能(通过DMA传输的双ADC多通道规则同步采集数据)不正常,无法显示波形,不知道是ADC出错还是DMA出错,没有深入探究。2、用来做检测类的,比如ADC采集什么的,反正对硬件要求高的建议买贵的。原创 2022-10-06 16:57:30 · 3767 阅读 · 1 评论 -
【arduino】时间相关函数
返回值:单片机上电或复位后到现在的时间,单位为ms,50天后复位为0,重新计算。返回值:单片机上电或复位后到现在的时间,单位为us。num:延时时间,单位微秒,最大值16383。延时函数:delayMicroseconds(num)读取单片机启动后运行的时间,单位毫秒。读取单片机启动后运行的时间,单位微秒。num:延时时间:单位毫秒。延时函数:delay(num)系统时间:micros()系统时间:milis()原创 2022-09-18 14:01:08 · 1870 阅读 · 0 评论 -
【arduino】串口通信
Serial功能:查看串口是否可用函数原型:Serial返回值: 1:串口可用(或串口准备就绪)0:串口不可用(或串口未准备就绪)原创 2022-09-18 13:49:27 · 8519 阅读 · 0 评论 -
【arduino】外部中断
LOW 低电平触发。RISING 上升沿触发。CHANGE 电平变化触发。FALLING 下降沿触发。0:中断0(IN0),对应IO口为2。1:中断1(IN1),对应IO口为3。Funtion_name:中断服务函数名字,可以任意取。与普通函数定义一样,但函数名字要和中断配置时设置的一样。mode:中断触发方式,可取以下值。INx:中断通道,取0或者1。原创 2022-09-17 20:25:37 · 794 阅读 · 0 评论 -
【arduino】I/O端口操作
注意:不管设置为输入模式,还是输出模式的端口都可以使用该函数读取IO口的电平状态,但是IO口在输入模式时为高阻态,输出模式时为低阻态,高阻态情况下,微弱电流信号也可以检测到,低阻态则不可以,故对于传感器的电平检测应设置输入模式。注意:设置analogWrite后,该端口会一直输出频率一定的方波信号,直到下一次操作该端口,即对该端口操作会打断PWM输出。value :检测的脉冲类型,HIGH:检测高电平信号持续时间,LOW:检测低电平信号持续时间。OUTPUT:输出模式,默认输出低电平,最大电流40mA。原创 2022-09-17 17:22:08 · 9062 阅读 · 0 评论 -
【Arduino】修改舵机角度范围
当我们使用arduino UNO/mega2560来驱动舵机的时候,由于有的舵机是0-180度范围的,有的舵机是0-270度的舵机等等,我们利用0-180的程序来驱动0-270的舵机总觉得很奇怪,很难受,虽然经过计算是可以驱动的,但是对强迫症患者非常不友好,那怎么修改呢。将文件里面所有的180改成270(这里只是列举一部分),或者你也可以写一个宏定义,方便以后修改。找到对应单片机的文件夹,UNO和mega2560都是avr单片机。右键arduino的快捷方式,点击属性,打开目录。...原创 2022-08-28 11:54:22 · 2024 阅读 · 3 评论 -
【arduino】sprintf对浮点型数据出错
https://www.cnblogs.com/gaotaozhaolei/p/4289489.html原创 2022-08-26 16:12:22 · 737 阅读 · 0 评论 -
【arduino】arduino模块化编程时出现错误:‘*****‘ undeclared (first use in this function)
背景:明明什么都没写错,但是编译的时候就是报错'Serial3' undeclared (first use in this function)原因:使用的子文件为.c文件,而arduino有一些语法是c++的,因此用.c文件来写会报错解决方法:将文件的后缀名改为.cpp显示文件拓展名:单击文件选中要修改的文件,再单击一次便可编辑文件名...原创 2022-05-31 14:26:45 · 3509 阅读 · 2 评论 -
【arduino】定时器库MsTimers2基础用法
..原文链接:使用MsTimer2库MsTimer2的使用:安装库:搜索并点击安装库即可示例解释:/* MsTimer2 is a small and very easy to use library to interface Timer2 with humans. It's called MsTimer2 because it "hardcodes" a resolution of 1 millisecond on timer2 For Detail.原创 2022-05-30 21:56:00 · 7183 阅读 · 2 评论 -
【arduino】linux安装arduino IDE
.1 进入官网:https://www.arduino.cc/en/Main/Software2 选择右方对应的版本进行下载3 点击 JUST DOWNLOAD4 在终端进入下载的目录下,然后输入以下命令进行解压,移动,安装,运行#文件名为arduino-1.8.19-linux64.tar.xzxz -d arduino-1.8.19-linux64.tar.xztar -xvf arduino-1.8.19-linux64.tar#解压完成 得到文件夹arduino.原创 2022-05-21 18:34:56 · 3665 阅读 · 0 评论 -
【arduino】 arduino与openmv的简单串口通信
..openmv代码:from pyb import UARTuart = UART(3,9600) #定义串口3变量(openmv上的串口P4 TX、 P5 RX对应串口3)uart.init(9600, bits=8, parity=None, stop=1) # init with given parameterswhile(True): if uart.any(): #如果有信息 B = uart.read()#读取二进制码 p原创 2022-05-18 22:13:34 · 5167 阅读 · 0 评论 -
【arduino】(u8g2最基础使用)mega2560 使用SH1106 OLED显示字符串,整数,浮点数,中文
..参考:【u8g2库字体问题:修改字体+中文字体支持-哔哩哔哩】下载安装库:打开arduino库管理u8g2,找到u8g2,点击安装查看例程:选择对应型号的驱动,将注释去掉,我用的是SH1106,这里的接线需要接默认的才可以下面个人的例子会讲到如何设置自己的接线个人例子:显示字符串,数字,中文。#include <Arduino.h>#include <U8g2lib.h>#include <Wire.h...原创 2022-05-17 23:04:57 · 7261 阅读 · 2 评论 -
proteus安装报错not found PROPDEFS.INI 或者not found models
..问题背景:更改默认安装路径后安装报错,或者重新安装到新位置报错。如图原因:proteus的文件索引不会随着安装位置的改变而改变,而是与默认安装路径或者上一次安装的路径相同。解决方法:更改路径。1打开proteus,点击OK2.单击system,再单击system...原创 2022-04-22 21:45:14 · 4939 阅读 · 7 评论 -
【智能车】相机标定——总钻风MT9V034相机标定
..本文章记录恩智浦智能车比赛,原飞思卡尔智能车比赛。采用的采集芯片为英飞凌的TC264,主板为逐飞科技的,摄像头为总钻风MT9V034。1.利用Matlab获取相机内参先获取图片打印标定纸打印下图,或百度搜索相机标定图片,下载并打印出来备用。连接单片机下载采集图像的例程找到逐飞配套资料的总钻风摄像头-->【例程】总钻风对应各种单片机的例程-->MT9V03x_PC_Mono_Demo记住位置,然后打开AURIX Development原创 2022-04-20 17:35:25 · 6615 阅读 · 1 评论 -
【openmv】openmv连接电脑运行与脱机运行结果不同问题解决
..问题描述:openmv在连接电脑的时候,用官方ide在线运行时程序运行正常,脱机运行,即拔掉数据线后运行出现有时候识别成功有时候识别不成功的问题。问题背景:利用主控的串口直接给openmv供电,串口的vcc为3.3伏。主控只有单个openmv串口工作时发现没有出现问题,当主控加入其他串口或者外设是openmv出现识别错误。问题解决:最后发现是openmv用3.3伏供电导致openmv供电功率不够,出现运行速度过慢或者重新启动等问题。分析与经验:openmv脱机运行与在线运原创 2022-04-14 10:52:52 · 6974 阅读 · 0 评论 -
【智能车】Aurix Development Studio 报错 target pattern contains no ‘%‘,stop
..错误:target pattern contains no ‘%‘,stop出现原因:在工程中添加了图传模块的库后编译出错。添加方式:将文件直接复制粘贴到工作区的工程目录下并刷新工程。编译后出现 target pattern contains no ‘%‘,stop 报错。错误原因:尚未明确,待补。但是目前经过查看文章《Aurix Development Studio 报错 target pattern contains no ‘%‘》后,初步判断为导入文件后原创 2022-04-11 13:47:36 · 9324 阅读 · 8 评论 -
【单片机】【arduino】arduino利用JSON向串口发送数组
arduino发送JSON信息原创 2022-04-06 08:05:27 · 4056 阅读 · 0 评论