自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

秘术师阿飞

没啥好看的

  • 博客(32)
  • 资源 (5)
  • 收藏
  • 关注

原创 天线使用过程中的问题

当在全向天线的后面增加一个反射板,其会导致原来在该信号通道的信号与通过反射板反射的信号在同一反射通道上,同时由于天线直接发出的信号和反射板反射的信号存在时间差,从而导致两个信号的不同步叠加,导致信号强度变差,信噪比变差。使用建议:在小范围空间内部,使用全向天线的时候,要注意周围的反射,当周围反射面距离天线太近的时候由于反射的存在会导致设备和主机之间的信号通道上存在很多的由于反射导致同频信号的叠加,从而导致信噪比变差。当在设备的后面增加一个短距离的铁制反射板的时候,信号强度为-103db,信噪比-3。

2024-03-28 10:13:47 134

原创 us级延时代码解析

获取到装载值后通过计算,得到最终的要延时的时间长度,该时间通过ticks = us * reload / (1000000 / RT_TICK_PER_SECOND);然后由told和tnow计算出两次读取时间之间的时钟数,最终进行判断,实现的us延时。代码中,先获取了系统定时器中的装载值,系统定时器的装载值可以通过初始化设置函数进行查看。

2024-03-22 17:09:20 196

原创 485问题汇总

总结485设计过程中遇到的一些问题。

2024-03-19 11:44:20 268

原创 emc防护原理

emc原理讲解

2024-01-14 21:15:56 408

原创 关于LVDS通信遇到的EMC问题

产品使用SN65LVDS84AQDGGR芯片将RGB888信号转化为LVDS信号,并通过屏幕进行显示。在冬季使用过程中,现场大量反馈屏幕不显示、黄屏等问题。

2023-12-25 13:12:57 448

原创 RT-Thread 串口DMA发送代码解析

在函数中引用了dataqueue数据队列的函数(介绍见:https://blog.csdn.net/whj123999/article/details/114175258),在函数中先将数据写入到数据队列中,之后将数据进行填充发送。设备初始化,在fm33_uart_get_dma_config()函数里面对串口的dma参数进行了初始化。当一次数据发送完成之后会调用回调函数,回调函数中会识别数据队列是否还有数据,有的话,会自动进行发送。该函数通过fm33_dma_config对dma外设进行初始化。

2023-12-21 16:55:29 418

原创 RT-Thread Sensor框架使用 - 1

使用气体传感器,对接到sensor框架中使用。

2023-11-22 16:41:46 89

原创 volatile关键字

2021-09-03 12:31:19 84

原创 关于STM32优先级的记录

2021-09-03 11:00:49 100

转载 FREERTOS移植

参考原文链接:https://www.eestar.com/creative/article/editor/3484安富莱FREERTOS教程(F103)、安富莱F4系列BSP库、战舰原理图2、硬件平台正点原子-战舰平台,keil。3、移植目标将F4的HAL,BSP代码库移植到F1中。同时完成FreeRTOS移植,并通过串口将FreeRTOS的线程运行状态通过串口打印出来。具体过程参考:https://www.eestar.com/creative/article/editor/3484.

2021-09-01 18:21:13 163

转载 ThreadX学习(一)--MPU内存保护单元与Cache配置

一、实验平台1、STM32H7502、软件:KEIL、CUBEMX3、参考资料:安富莱_STM32-V7开发板_用户手册,含BSP驱动包设计(V3.2)(23.24章节)、Cortex-M3权威指南(中文)(第十四章 存储保护单元MPU)、STM32 MPU说明。4、转载地址:https://www.dianyuan.com/eestar/article-3443.html二、学习内容:使用CUBEMX进行MPU、Cache配置,并进行读写实验。2.1、CUBEMX配置:1、时钟配置本次设

2021-08-28 17:40:09 1008

转载 STM32接收不定长数据

硬件STM32L475方案使用通过修改HAL库,加入IDLE中断,实现不定长数据接收参考资料LAT0534_UART_IDLE中断使用_接收不定长串口数据_V0.3关于资料下载,包括源码,参考的手册:https://www.dianyuan.com/eestar/article-3471.htmlcubemx配置实现过程首先接入接受的数据缓冲区,并设置缓冲区的大小//Store the revceived bytes numberuint32_t Rev_Size = 0;

2021-08-27 18:52:13 360

原创 关于stm32 hal库usart HAL_UART_Transmit_IT函数解析

1、原因最近在看安富莱的bsp教程,关于usart的部分使用了fifo的管理,但是安富莱的教程中,FIFO管理部分都是自己写的,而stm32官方的hal库里面,关于usart发送部分是有HAL_UART_Transmit_IT可以以中断的方式发送数据的。我现在的疑惑就是,我只使用安富莱的fifo管理部分,将发送部分交给hal库的函数进行处理,可不可是实现和安富莱bsp教程相同的功能。2、函数解析HAL_StatusTypeDef HAL_UART_Transmit_IT(UART_HandleType

2021-07-26 16:24:20 11551

原创 低频信号检测--STM32

实验平台:STM32F407函数库:HAL软件:KEIL,CUBEMXPS:本人将于2022年7月毕业,有企业需要单片机方面的人的话,可以私聊我,我可以把我的简历发一下。明年1月份可进行实习。要求:工作地在青岛附近。实现功能通过定时器实现频率检测,将检测到的频率通过串口发送出来。方案描述使用定时器输入捕获功能,获取两次上升沿的值,通过将两个值之间进行计算,实现计算频率。计算公式:fre = time_fre/(count1-count2);fre–信号频率time_fre – 定时器分

2021-07-19 19:32:22 864 1

原创 STM32F103的emwin移植,cubemx,hal

版本信息1、开发板–战舰2、芯片 STM32F103ZET63、屏幕TFT4、参考资料:正点原子emwin开发手册5、hal库,cubemx未完成1、触摸部分未进行引入移植过程1、fsmc设置2、移植tftlcd底层参考:https://blog.csdn.net/qq_21066161/article/details/118819470?spm=1001.2014.3001.55013、加入malloc函数和sramsram设置malloc函数,在正点原子的内存管理函数

2021-07-16 21:15:20 1416 1

原创 关于STM32F103ZET6使用HAL库使用lcd

版本信息1、开发板-战舰2、软件keil5,cubemx参考信息https://blog.csdn.net/weixin_43892323/article/details/107305536需要注意的#define LCD_BASE ((uint32_t)(0x6C000000 | 0x0000007E))需要将该行数据修改为#define LCD_BASE ((uint32_t)(0x6C000000 | 0x000007FE))原因,f1的fsmc的地址和

2021-07-16 19:57:15 1143 1

原创 关于stm32f103zet6使用hal库生成工程后,debug时不能正常使用的问题

仿真时显示***JLink Error: CPU is not halted**JLink Warning: CPU could not be halted***JLink Error: Can not read register 15 (R15) while CPU is running***JLink Error: Can not read register 16 (XPSR) while CPU is running***JLink Error: Can not read register

2021-07-16 18:45:28 575

原创 STM32--HAL库--UART使用

写在前面的话欢迎大家在评论区指正错误,该博文是我在这几天使用hal库的时候碰到的问题的记录,对于暂时没有写的像dma、阻塞接收等函数,在后期如果我用道的话,我也会在该博文里面更新。当让也欢迎大家在评论区指正。函数在这里不介绍关于DMA的操作,只是用有关串口的阻塞和非阻塞函数。HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout);H

2020-12-10 15:40:36 1879

原创 ADC使用DMA通道采集数据通过UART-DMA发送

设备相关开发平台:STM32F103ZET6开发软件: KEIL 5、 CUBEMX技术参数使用板载ADC采样率:5ksps串口波特率:256000问题在使用的时候,发现同时使用ADC的DMA通道采集数据,通过串口的DMA通道发送数据时,DMA出现问题,现象是不发送数据了(实现过程:在ADC的DMA半传输中断和传输完成终端里面,调用串口的DMA数据发送函数)。通过仿真发现,程序还在正常运行,中断还在正常进入,猜测是DMA仲裁或者是DMA的硬件出现问题了。解决方法在UART-DMA传输,改

2020-12-02 10:40:28 1367

原创 使用cubemx配置adc--多通道

关于ADC采集波形信号设计思路通过规则通道控制采集速率,通过DMA进行数据存储。实现步骤1、GPIO初始化2、配置定时器,注意事项1、关于规则组和注入组的区别

2020-11-27 08:20:29 1085

原创 FPGA试验记录

FPGA试验记录开发板–正点原子开拓者FPGA开发板相关资料–正点原子资料NIOS II 实验2020-11-3记录:串口例程问题:1、在编写程序的时候,需要新建工程,暂时没看明白怎么移植工程。2、新建工程,参照正点原子nios ii例程。UART实验 目标:在中断工程里面添加,串口。1、qsys里面添加 uart内核(寄存器具体功能,正点原子里面有讲) 需要注意,在生成qsysy硬件时,生成的目录默认是,文件复制出来的目录,需要改一下。2、在顶层文件添加相关端口,设置相关端口,编

2020-11-03 20:37:15 103

原创 关于quartus多功能端口报错问题

关于quartus多功能端口报错问题使用开发板的de1-soc。编译报错:Error (176310): Can’t place multiple pins assigned to pin location Pin_AF14目的:要使用该开发板的时钟引脚,加入时钟。现象:直接加入时钟引脚后,导致该引脚报错。原因分析:af14引脚为多功能引脚,默认为时钟引脚。解决方法:引入锁相环pll,将该引脚设置为锁相环输入引脚,经锁相环后,为系统提供时钟。锁相环设置:https://www.bilibili

2020-07-11 15:33:42 845 1

原创 关于51下降沿中断进入后退不出来的问题

51单片机在下降沿触发的中断模式中,因为中断标志位在进入中断响应函数的瞬间清楚标志位。如果中断输入的按键有比较明显的抖动的话,会导致中断服务函数再次被触发,从而导致多次执行中断函数,若在函数里面还有阻塞判断中断端口的语句就会导致程序一直在中断中循环。 解决方案:使用电平触发的方式,电平触发过程中,低电平将中断标志位置一,高电平清零,就不会受到终端服务函数的影响。...

2020-06-11 09:49:08 835

原创 关于如何使用rtthread和阿里云进行通信

该程序主要为实现阿里云和本地单片机进行连接时间 2019-12-4进行总体设计本次使用mqtt进行数据通信单片机1,配置wifi热点2,配置iotkit软件包(使用2.0.4版本)配置过程 https://www.rt-thread.org/document/site/submodules/ali-iotkit/docs/samples/2.1 在设置连接过程中 product...

2019-12-08 18:24:03 1866

原创 关于rt-thread在esp8266等待数据接收时,定时发送数据的解决方案

关于在esp8266等待数据接收时,定时发送数据的解决方案解决方案:通过对recv发送函数的接收超时时间进行修改,和返回的错误代码进行修改。第一步,修改recv发送函数的超时时间 struct timeval timeout;timeout.tv_sec=60; //这里单位是ssetsockopt(sockfd,SOL_SOCKET,SO_RCVTIMEO,(void *)&amp...

2019-12-03 18:51:41 1080

原创 关于RT-THREAD中ESP8266中使用服务器模式获取数据,连接新的路由器(3。1)(cjson软件包使用)

参考:https://www.rt-thread.org/qa/thread-11560-1-1.html通过使用cjson软件包生成的数据可以使用rt_strlen()进行长度测算,不会发生数据丢失。将字符串数据装换成int数据,使用aiot函数:https://blog.csdn.net/nanfeibuyi/article/details/80811498char *p;cJ...

2019-11-24 14:18:15 693

原创 关于sizeof(p)和sizeof(*p)的使用

sizeof(p) 返回p数组占用的总的字节数sizeof(*p)返回第一个元素所占用的字节数

2019-11-24 11:09:57 6198 5

原创 关于RT-THREAD中ESP8266中使用服务器模式获取数据,连接新的路由器(2)(用户信息存储)

运行平台 正点原子 潘多拉板 使用esp8266连接网络 flash存储数据(采用芯片内部存储) 服务器云平台 阿里云ecs服务器使用evn进行配置通过使用flash记录esp8266登录信息,登录信息包括 路由器密码 路由器名称 服务器ip 本机ip本次为解决将WiFi的连接信息直接通过调用flash里面的存储数据进行连接网络建立用户数据结构体,在程序中将用户数据结构...

2019-11-23 14:00:49 495

原创 关于RT-THREAD中ESP8266中使用服务器模式获取数据,连接新的路由器(1)(flash配置)

运行平台 正点原子 潘多拉板 使用esp8266连接网络 flash存储数据(采用芯片内部存储) 服务器云平台 阿里云ecs服务器使用evn进行配置通过使用flash记录esp8266登录信息,登录信息包括 路由器密码 路由器名称 服务器ip 本机ip通过调用fal软件包对flash进行抽象管理,完成读写,擦除等操作。(1)开启芯片内部flash管理程序(2)开启fal管...

2019-11-16 11:28:00 495

原创 关于rt-thread使用esp8266通过服务器使用telnet功能(一)

因为开始这个项目,欢迎有兴趣的人进行讨论,在是还没有很明确的思路正在探索中。关于telnet介绍https://www.rt-thread.org/document/site/tutorial/qemu-network/telnet/telnet/文中使用的esp8266使用rt-thread官方软件包https://www.rt-thread.org/document/site/appl...

2019-11-15 11:32:15 1482 1

原创 有回代主元消去法--线性方程组求解

有回代过程的主元消去法,其实就是先进行无回代操作,当最后一个式子解出来以后,会有一个唯一解出来,然后一级一级往回代,最后解出所有的解来。作用:用来解方程组/*使用方法 xianxing_run(A,X);#define N 3float A[N][N + 1];float X[N];N代表N阶线性方程组通过调用xianxing_run函数,A为输入的线...

2019-06-10 19:58:39 1254

转载 关于jason中大括号和中括号的区别

一、{ } 大括号,表示定义一个对象,大部分情况下要有成对的属性和值,或是函数。 如:var LangShen = {"Name":"Langshen","AGE":"28"}; 上面声明了一个名为“LangShen”的对象,多个属性或函数用,(逗号)隔开,因为是对象的属性, 所以访问时,应该用.(点)来层层访问:LangSh...

2019-03-29 15:03:12 1290

STM32F103移植FREERTOS基础代码

STM32F103+FREERTOS+HAL+安富莱BSP(HAL)

2021-08-29

STM32H750+MPU+CACHE

使用STM32CUBEMX+KEIL。说明链接:https://www.dianyuan.com/eestar/article-3443.html

2021-08-28

STM32串口接收不定长数据

源码(STM32L475)+ST官方手册+keil+stm32cubemx。详细说明:https://www.dianyuan.com/eestar/article-3471.html

2021-08-28

51单片机 简易电子时钟

1.1实现功能 1、实现数字时钟的时、分、秒数码管显示。 2、通过定时器实现计时功能。 3、可以通过按键来调整时间。 1.2 系统总体设计方案 为实现上述功能,系统共分为3部分,分别是控制部分、按键、LED数码管。其中控制器主要负责程序运行、按键负责采集外部输入信息、LED数码管负责显示。系统设计图如图1-1所示。 图1-1 系统设计图 1.3 功能说明 上电后数码管自动开始显示时间,从0开始显示。通过按下SW1进入设置模式。通过按下SW2或SW3进行左移和右移,来控制时、分、秒的时间设置模式选择。通过SW4或SW5实现数值的加减。修改完成后,再次按下SW1推出设置模式。 修改小时设置流程: 1、按下SW1进入设置模式。 2、按下2次SW2进入时间设置。 3、通过SW4或SW5修改显示时间。 4、按下SW1推出修改模式。

2020-06-11

有回带过程的主元消去法.c

/* 使用方法 xianxing_run(A,X); #define N 3 float A[N][N + 1]; float X[N]; N代表N阶线性方程组 通过调用xianxing_run函数,A为输入的线性方程的矩阵形式 | A00 A01 A02 A03 | | X0 | | A04 | | A10 A11 A12 A13 | | X1 | = | A14 | | A20 A21 A22 A23 | | X2 | | A24 | | A30 A31 A32 A33 | | X3 | | A34 | 行列式结构如上所示 x0,x1,x2,x3为所求的值 A00-A03、A10-A13、A20-A23、A30-A33 为行列式系数 A04、A14、A24、A34 为常数项 */

2019-06-10

空空如也

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

TA关注的人

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