
程序员
文章平均质量分 81
lilei668
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
树莓派4B安装Ubuntu Mate20.04
需要准备的设备:树莓派4B(这里我选用的是8G内存版本) 键盘和鼠标(必须要有键盘,鼠标在安装好Ubuntu Mate后使用) 显示器(这里推荐使用HDMI屏幕,我使用的是https://www.waveshare.net/wiki/7inch_HDMI_LCD_(C)下的屏幕) 16G/32G的SD卡(推荐使用32G,因为最新的Ubuntu Mate20.04的镜像文件高达5GB) 读卡器(USB2.0或者3.0均可,这里推荐使用3.0...原创 2021-08-10 23:13:39 · 4306 阅读 · 3 评论 -
DR16接收机硬件底层代码
DR16接收机D_BUS与开发板通讯方式为单线串口通讯,**DR16只发送遥控器的信号,单片机进行接收,二者之间不能进行交互**,这里面说一下**DR16的发送为固定频率的实时发送**,因此在使用单片机串口进行接收的时候,为了节省单片机的算力,我们使用串口3且接收方式使用占用资源较少的**DMA**通道进行接收,**根据DR16的特性如果使用串口中断进行接收,占用单片机内部资源较多,而且这仅仅是一个遥控器的简单底层,无需占用过多的软件资源考虑,并且使用串口中断接收会增加程序编写的难度,影响实际使用中系...原创 2021-07-28 12:25:42 · 2518 阅读 · 5 评论 -
STM32双串口接收数据
工程要求需要至少两个串口,一个串口用于接收传感器数据,另一个串口用于接收上位机或者遥控器发来的指令,本次开发的软件使用的是CubeMX和keil5的编译环境,使用的单片机是STM32F103RCT6,使用串口3接收传感器的数据,串口1接收上位机或者遥控器发来的指令,下面上CubeMX的配置图片:图中开了三个串口,原本打算使用串口2接收数据,但是实验过程中发现串口2出现了问题,不能正常使用,所以使用串口3接收传感器数据三个串口的配置如下:这里三个串口的配置均相同,且中断优先级设置的均为默认优先级,原创 2021-05-16 17:28:48 · 3975 阅读 · 0 评论 -
STM32学习心得
从点亮LED灯开始的入坑之路建议点完灯之后立即学习怎么使用小屏幕OLED(几个脚都好用)接下来可以开始串口通信的学习(尤其是收发中断)ADC的使用非常重要很多接触到的传感器都是输出模拟量的而且需要快速固定频率采集数据的话建议学习一下定时器触发数据通过DMA传递接下来可以学习一下定时器的使用了32常用的定时器功能有PWM波输出,PWM波输入判断占空比和频率,输出比较功能(可以输出变频率的PWM)输入捕获高低电平(超声波一系列的模块)使用定时器进行延时的功能定时器的编码器模式(如原创 2021-03-14 13:11:26 · 1945 阅读 · 0 评论 -
STC12多中断使用(PWM ADC 串口)
以下程序为使用STC12C5A60S2单片机,采用ADC中断扫描模式,并且初始化定时器0进行PWM输出,用串口输出温度数值:难点:ADC中断与PWM输出靠定时器0发生并且串口通讯波特率靠定时器1发生,这几个中断在代码编写与调试过程中,发现这几个程序独立应用的代码直接移植过来,并不能正常使用,这几个中断的优先级顺序和初始化顺序会产生相互干扰,因此经过查找相关资料,最终解决了这个问题,下面为详细代码(注释是手打上去的,不知道为啥从keil往这里粘贴会出现问题)void PWM_init() //PWM初始化原创 2021-03-11 18:05:01 · 2093 阅读 · 0 评论 -
单片机与C语言语法注意笔记
1.在使用单片机的时候注意无符号整形变量和一般整形变量的区别2.进行比较的时候最好使用一般变量进行比较,如果原来变量是无符号变量最好将其进行强制类型转换,转换成。一般类型变量进行比较3.在进行减法的时候一定注意,注意数据的类型,否则程序一定会出bug的, 统一变量类型进行减法。...原创 2020-02-09 16:31:17 · 432 阅读 · 0 评论 -
Keil5使用中文注释注意事项
keil5中中文注释编程小方块的解决方法:原创 2019-02-11 22:29:06 · 2508 阅读 · 0 评论 -
STM32系列单片机使用心得
CortexM3系列的芯片不能进行浮点运算,此类芯片的控制能力较好,是用来取代单片机的,CortexM4及其高代芯片可以进行浮点运算,此类芯片运算速度较快。...原创 2019-05-26 01:01:08 · 2216 阅读 · 0 评论 -
TCS3200的使用
经过资料可知TCS3200的工作原理是输出方波的频率,来判断颜色信号的强弱,资料百度文库链接:Arduino:https://wenku.baidu.com/view/0b4d2a4376eeaeaad0f33044.html?from=search(以上链接有怎么设置输出比例因子的图表,通过S0,S1两个引脚的电平设置可以进行输出比例因子调整,见以下图表)不同颜色采集的频率的设置方式:...原创 2019-02-18 16:19:38 · 12916 阅读 · 7 评论 -
STM32学习笔记(PWM输出)
以下为定时器PWM输出函数,注意:使用时一定要把原来输出函数注释掉。注释代码如下:// sConfigOC.OCMode = TIM_OCMODE_PWM1;// sConfigOC.Pulse = 0;// sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;// sConfigOC.OCFastMode = TIM_OCFAST_DISABL...原创 2019-04-08 17:36:43 · 3386 阅读 · 0 评论 -
STM32Cube学习笔记(delay)
延时函数的配置定时器中断配置上图是大约10us一次中断定时器硬件计数模式配置代码void TIM2_IRQHandler(void){/* USER CODE BEGIN TIM2_IRQn 0 /timer_second++;t++;if(timer_second60){timer_second=0;timer_minute++;}if(timer_minute...原创 2019-03-23 10:30:16 · 281 阅读 · 0 评论 -
机器人大赛总结
stm32配置图:颜色识别模块对应接线:/接线方法/VCC 接3.3/GND 接GND/LED 接3.3#define S0 PCout(6)#define S1 PCout(7)#define S2 PCout(8)#define S3 PCout(9)#define OUT PAin(8)Oled屏幕的对应接线:// ------------...原创 2019-05-18 22:50:38 · 209 阅读 · 0 评论 -
制作频谱应用FFT心得
生活中充斥着各种各样的信号,甚至包括我们所熟知的220VAC交流电,都属于一种交流信号,只不过信号强度较大,会要人的命,网上关于fft的应用,例程,硬件电路已经很多了,个人纯属爱好做个总结,各位大佬勿喷。 先上两张图,大家体会一下傅里叶变换的奇妙之处:...原创 2019-07-12 18:02:50 · 1402 阅读 · 2 评论 -
HAL库的使用之Cube配置编码器输入捕获模式
做平衡小车目前有两种思路,第一种是使用编码器电机,这样一般是两个闭环控制,直立闭环和速度闭环,另一种是使用步进电机,一般使用步进电机很少进行闭环控制。使用Cube进行配置时,发现几点注意事项,STM32单片机自带编码器接口,可以直接进行使用,十分方便,所以根据硬石科技的资料,编码器模式在STM32HAL库中叫做Encoder 。 首先有一点注意事项,在配置编码器模式的时候一定要对所使用...原创 2019-07-24 13:36:27 · 7337 阅读 · 4 评论 -
平衡小车的资料
根据网上平衡小车之家的资料引脚需要用:LED ----- PA12Key -------PA15OLED:RST_Clr ------ PC13RS_Clr ------ PB4SCLK_Clr ------ PC15SDIN_Clr ------ PC14ADC:PA4TIM3:PB0 PB1Motor:PB12 PB13 PB14 PB15PWM: PA...原创 2019-08-02 19:22:09 · 950 阅读 · 0 评论 -
STM32定时器输入捕获频率(cube)
从目前手头资料来看,定时器输入捕获频率只有高级定时器能够做到,其它的定时器应该不可以。原创 2019-04-08 17:30:31 · 1580 阅读 · 0 评论 -
字模软件的字体设置
取模方式选择C51文字输入区字体选择字库的封装库。//常用ASCII表//偏移量32//ASCII字符集//偏移量32//大小:126/68的点阵/const unsigned char F6x8[][6] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00,// sp0x00, 0x00, 0x00, 0x2f, 0x00, 0x00,// !...原创 2019-01-29 12:52:46 · 372 阅读 · 0 评论 -
使用Cube配置32串口通讯注意事项
1、Cube配置好的串口通讯可以通过HAL_UART_Receive_DMA()HAL_UART_Receive_IT()该hal库自带函数接收来自传感器发出的具有时间周期的信息,但是该函数无法接收来自上位机或者其他单片机的控制程序。(无法接收的有电脑、串口屏、蓝牙、其他单片机等)2、如果想实现上位机与单片机之间的通讯需要自行配置串口接收中断函数见文件串口接收配置函数。...原创 2018-12-13 19:49:13 · 1019 阅读 · 0 评论 -
关于stm32程序中局部数组长度的局限
电赛期间使用stm32rct6结果发现不能使用在主函数中定义的超过150多长度的数组,经暑假里调查发现,stm32中局部变量数组的长度有限制,如果想使用较长的数组,可以选择定义全局变量,或者改变启动文件里的一个设置。...原创 2018-12-16 23:43:32 · 2809 阅读 · 0 评论 -
AD学习笔记4
1.创建库 文件->新的->工程->集成库2.保存->先保存工作台再保存工程(保存到创建的文件夹下面)3.向工程中添加原理图库-> 文件->新的->library->集成库4.绘制单片机原理图的时候引脚上有横杠的用“\”来画:p\s\e\n会转换成带横杠的psen。5.更换名字 工具->器件属性原创 2020-06-17 23:37:14 · 285 阅读 · 0 评论 -
AD学习笔记6
1.通过报告->测量距离,可以测量焊盘之间的距离。2.通过工具->新的原件,创建需要画的pcb原件库。3.从这通过A可以对画的引脚标号。4,双排引脚找DIP,单排引脚找SIP。...原创 2020-06-17 23:36:44 · 232 阅读 · 0 评论 -
AD学习笔记5
1.创建完集成库之后创建PCB库,文件->新建->库->PCB元件库2.从这可以找到焊盘、过孔、走线、放置圆环、圆弧、填充3.原创 2020-06-17 23:36:07 · 240 阅读 · 0 评论 -
AD学习笔记8
1.集成库编辑的条件是必须在打开集成库的情况下,或者新建立集成库的条件下进行编辑。原创 2020-06-17 23:36:33 · 430 阅读 · 0 评论 -
AD学习笔记9
1.过孔也称金属化孔,在双面板和多层板中,为连通各层之间的印制导线,在各层需要连通的导线的交汇处钻上一个公共孔,即过孔(连接不同层之间需要联通的导线需要过孔)。2.自动布线的情况下,过孔一般使用器件焊盘来完成,手动布线的时候需要自行画出过孔。3.AD的各种文件名称及其文件属性,绝不可以自行在外进行修改。4.部完线之后可以需要进行敷铜板,放置->多边形敷铜,三种敷铜模式如上图所示,最好选...原创 2020-06-17 23:35:57 · 422 阅读 · 2 评论 -
AD学习笔记7
1.创建3D库的步骤:文件->新建->库->PCB3D(库)2.Altium无法绘制3D模型,只能从外界导入,导入步骤:工具->导入3D模型3.通过:放置->3D原件实体(3Dbody),打开后需要选择属性步骤模型,然后通过插入步骤模型进行导入。4.在3D模型与焊盘不匹配的时候可以通过旋转进行调整位置,由于A原创 2020-06-17 23:36:57 · 171 阅读 · 0 评论 -
Cube之生成pdf和.txt文件
在Cube操作栏上的小纸条可以生成pdf的配置说明文件,和.txt的说明文件。原创 2019-01-25 18:56:26 · 2184 阅读 · 3 评论 -
快速傅里叶变换FFT
// 快速傅里 叶变换FFT的C语言算法彻底研究// LED音乐频谱显示的核心算法就是快速傅里叶变换,FFT的理解和编程还是比较难的,特地撰写此文分享一下研究成果。// 一、彻底理解傅里叶变换// 快速傅里叶变换(Fast Fourier Transform)是离散傅里叶变换的一种快速算法,简称FFT,通过FFT可以将一个信号从时域变换到频域。// 模拟信号经过A/D转换变为数字信号的过程...原创 2019-02-12 14:33:15 · 622 阅读 · 0 评论 -
STM32学习笔记(输入捕获之测量电平时间)
使用hal库编辑的时候,要学会使用普通的库编程的方法,这样可以用hal库来初始化引脚,配置寄存器,这样hal库的应用方法更加灵活。原创 2019-02-11 12:27:27 · 936 阅读 · 0 评论 -
AD学习笔记10(后期)
1.如果界面突然暗下来,使用右下角清除即可退出。原创 2019-02-08 23:36:59 · 256 阅读 · 0 评论 -
STM32的Cube学习笔记(ADC)
经过具体实验可知,以前思学师哥的程序中有ADC开始DMA采集和停止DMA采集两个函数,可以理解成消抖,因为采集频率过快数据可能会发飘。 硬石资料如下根据实验只需要将ADC的DMA通道采集打开,无需关闭即可采集成功,而且数据比较稳定,这样为快速傅里叶变换做出了准备。...原创 2020-01-28 20:31:59 · 486 阅读 · 0 评论