自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

随风飘零翼的博客

本人懒癌+拖延症,不怎么更新文章。一般都把自己写过代码或者心得放上去,还有就是自己学习生活记录吧,慢慢补充。。自己其实学了不少东西,除了本专业的还有

  • 博客(38)
  • 资源 (2)
  • 收藏
  • 关注

原创 STM32 硬件SPI应用 WK2124串口扩展芯片

一般使用Wk2xxxWriteFifo和Wk2xxxReadFifo。根据官方实例代码修改而成,具体寄存器参数请参考手册。SPI模式0.CS片选信号是自己用软件设定。仅列出读写寄存器修改,后续函数无需修改。全双工模式,8位数据,有效位为最高位。预分频结果最终在芯片工作范围内即可。port:串口1-4。

2023-04-13 10:11:00 961

原创 FreeRTOS 事件组

xWaitForAllBits:pdTRUE: 等待的位,bit全部为1;pdFALSE: 等待的位,其中一bit为1。xClearOnExit :pdTRUE: 清除uxBitsToWaitFor指定的位;pdFALSE: 不清除。configUSE_16_BIT_TICKS设置为0 ,bitx(0~23);为了查看效果把串口任务优先级设置为最高,其他比串口低,阻塞时间相同。实现功能,当任务A,B完成后执行串口任务。后面更新以前调试过的任务通知功能。不知道这样使用方法对不对。不同任务用不同的位表示。

2023-04-11 15:34:57 647

原创 CubeMX调用DSP库

把Cube库中对应型号文件夹中的DSP头文件复制到自己工程目录下。再次编译通过,调用FFT函数。下载安装完记得勾选。

2023-03-24 15:26:41 346

原创 STM32CubeMX 移植TFTLCD

我这里的主频设置为168M 则HCLK=1/168M=6ns 再根据芯片手册的驱动时序计算。删除至红框中的函数,延时函数替换为HAL_Delay。这里也要替换下自己的代码风格。可以删除,因为初始化io口时已经为高电平。先把工程原本的u8,u16等统一替换成库文件原本的uint,也可以再自行typedef定义一遍。删除lcd.c中的一些初始化函数和代码。这些已经在fsmc.c和gpio.c中初始化好了。RST复位引脚与32的复位引脚相连,上电复位。不同引脚选择的 NEx不同。TFT的背光高电平点亮。

2023-03-23 16:27:22 631

原创 STM32空闲超时接收中断方式

以前一直用DMA方式接收数据,今天试了下中断接收方式,简单测试下。这样每一次接受数据都是会重头覆盖读取,不会发生错位问题。已配置好串口收发模式和NVIC。

2023-03-23 10:59:25 695

原创 蓝牙HC05常用调试指令

拿到手后,用USB转串口工具接上电源和地,以及交叉相连tx和rx引脚,按住模块上的小黑点再通电进入AT模式。AT+UART=115200,0,0, 波特率修改为115200,0停止位,0校验位。波特率调整为38400,这是AT模式的通信波特率。AT+ROLE或AT+ROLE?,返回当前主从模式,1表示主机,0表示从机。AT+ROLE=X,修改主从模式,X为1或0,对应主机和从机。AT+BIND=XX,XX,XX,修改绑定地址(CMODE=0)发送AT加回车,返回OK表示通信成功。

2023-03-21 09:50:42 1823 1

原创 STM32 PWM输出

其他高级定时器原理相同,需要用到哪个引脚就开启对应某个通道。Clock source一般选择内部时钟。主频设定为64MHz,预分频64,重装载值1000.PWM频率为64M/64/1000=1k。用启动PWM和设置TIM捕获比较寄存器的值 函数。占空比为500/重装载值 50%使用基本的PWM输出。

2023-03-17 09:40:54 152

原创 STM32 HAL库 ADC+DMA

写了部分关键代码,在两个任务中OLED和串口打印分别显示的通道值。

2023-03-15 10:30:24 1665

原创 STM32 HAL库 软件触发ADC 多通道连续转换

这里我把6和3不按从小到大的顺序排列。转换模式选择Backward则是从大到小顺序。注意,自定义转换顺序模式对通道数量有限制。12BitADC,没有开启过采样。不同通道转换顺序可自定义。想要使用后面几个adc通道需要选择。此时通道转换顺序从小到大。使能扫描和转换模式。

2023-03-15 09:45:30 1440

原创 回想自己当初刚学单片机

上的民办本科条件太拉了,没办法自己怂选的,技能大赛没被保送,省赛客场比赛差一分进国赛,3个人比赛,有个一直划水的,也没办法,实验室真正会做东西的就几个人,都各自负责不同项目。记得stc有个冷启动我不小心勾上了,导致没法下载程序,我以为被我玩坏了,后来百度解决的。对大二开始学的stm32,跟着正点原子视频入门,我看视频课容易睡觉,听不下去理论的,但还是和当初学c51一样研究了底层。后面就开始学画板子,各种主控板和电源板,还有自己找些感兴趣的东西进行制作,不是很高大上的东西,就不献丑放出来了。

2023-03-10 14:49:25 100

原创 Freertos利用队列传递变量值

简单写了个读取温度数据传送到oled显示。目前同步效果在debug模式下看较为及时。

2023-03-06 15:05:39 287

原创 Freertos下微秒延时函数

使用的是M0内核的芯片,没有DWT,定时器方法也不能使用,无法驱动一些靠硬件协议的传感器。有人使用的是滴答定时器,试验了下可行,故此记录一下。有没有别的方法,求教。

2023-02-24 16:48:27 1375

原创 OLED硬件IIC HAL库

【代码】OLED硬件IIC HAL库。

2023-02-22 14:12:48 169

原创 DS18B20 基于HAL库

DS18B20

2023-02-22 14:06:11 791

原创 stm32定时器实现 微秒延时

HAL库定时器

2023-02-22 13:46:18 929

原创 Freertos查询剩余栈空间

uxTaskGetStackHighWaterMark

2023-02-17 15:27:02 1845

原创 通过ipv6访问群晖其他应用操作方法

因为家里只有动态公网ipv6,端口转发没有用,一些安装的应用无法通过外网访问

2022-07-03 18:21:52 1060

原创 2021电赛F题数字识别和巡线部分

继19年电赛在专科拿过一次国一后,没想到在本科这边又拿了一次。唯一一次遗憾的就是智能车了,但那个是外在因素,等完全毕业之后再谈。这次电赛我没有准备多少东西,只提前准备了图像识别和坐标计算一类的。在20年的省赛帮过雪地调过k210后,自己后来为了比赛,也买了一个。参加了省物联网和交通科技比赛。没有用openmv是因为它价格昂贵,带神经网络计算的plus版我没有考虑。由于这边学校对竞赛支持力度不大,经费不多,所以我就用了一块k210.用它作识别和巡线其实是完全够用的。只需要写个判断分开就好。..

2022-04-20 16:42:19 9603 25

原创 用union记录硬件地址位

板子上留有拨码开关,用来级联不同板子,判断是哪块板子发送的数据。头文件中声明#define Address1_IN HAL_GPIO_ReadPin(Address1_GPIO_Port,Address1_Pin)#define Address2_IN HAL_GPIO_ReadPin(Address2_GPIO_Port,Address2_Pin)#define Address3_IN HAL_GPIO_ReadPin(Address3_GPIO_Port,Address

2022-04-20 16:37:55 340

原创 使用共同体进行串口收发

.h#ifndef __TEST_H#define __TEST_H#include ""#define BufferSize 7struct Status_BYTE{ uint8 Head, Com, UID[2], POT[2], checksum;};union Send_Data{ struct Status_BYTE byte; uint8 all[BufferSize];};e.

2022-03-07 15:45:52 332

原创 STM32 HAL库 串口DMA接收不定长数据

上一期配置https://blog.csdn.net/zy19981110/article/details/123005092?spm=1001.2014.3001.5501参考他人的代码https://blog.csdn.net/euxnijuoh/article/details/81638676?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.pc_releva

2022-02-24 17:36:12 3141 2

原创 STM32CubeMX的使用,配置DMA串口

这次记录下最近调用的外设。DMA以前用得很少,只通过ADC采集使用,开启后就直接读那个数组就可以了。我对dma的理解就是不占用cpu,数据传输速度快,可以直接从外设和内存间相互读取。目前的工作用的芯片只能使用hal库开发,stm32g0系列性价比高。用cubemx把基础外设全配置跑了一遍,给我最大感受就是方便快捷,在st自家芯片中移植性强。时钟和晶振配置不多说了,网上都很全了,可以不使用外部晶振,但HCLK最大只能到64M,最好还是外接晶振让系统更可靠稳定吧。这里我创建了个新的ioc文件,之

2022-02-18 16:55:14 12926

原创 AS5045B/AS5145 零位编程 OTP

因为项目需要修改零位,最终没有采用硬件SPI,发现OTP操作需要用到芯片手册中特定的时序,于是采用IO模拟的方法。下图是芯片的寄存器,蛋疼的是根据官方手册和例程,知道这款芯片需要对寄存器所有位进行操作,所以需要先读一遍寄存器,再把零位数据Z11-Z0依次写入。AMS公司有别的芯片,可以通过spi选择寄存器对某些功能进行改写。有关SSI通信的还有另一种,AS5045不带B的,那个貌似只需要直接写16位命令即可,比较方便,没有实际动手尝试过。对芯片进行写/编程操作分4块步骤。

2022-02-11 14:51:47 5359

原创 PIC16F18xx软/硬件SPI驱动磁性传感器AS5045B(附SPI模式分辨方法)

PIC16F1823软硬件SPI驱动磁性传感器AS5045B(附SPI模式分辨方法)

2021-12-23 15:30:41 1074

原创 stm32定时器扫描数码管(无锁存器)和矩阵按键

如果不使用定时器,会有很多冲突。比如数码管显示不正常,按键响应问题。定时器时间消隐效果还不错,根据实验室另一个光伏项目的朋友用stc15代码改过来的。数码管#ifndef __LED_H#define __LED_H #include "sys.h"#define DX0 PAout(0)#define DX1 PAout(1)#define DX2 PAout(2)...

2019-07-02 19:27:46 2664 1

原创 DMA多通道AD

初始化及配置#include "ACS712.h"__IO uint16_t ADC_Value[2] = {0, 0};void adc_Configuration(){ GPIO_InitTypeDef GPIO_InitStructure; ADC_InitTypeDef ADC_InitStructure; DMA_InitTypeDef DMA_InitStruct...

2019-07-02 19:10:45 1537

原创 STC单片机超声波程序

HCSR04个人看来是个一般的超声波//Trig = P1^0//Echo = P3^2/*****************************...

2019-05-18 10:11:53 2922 1

原创 分贝检测传感器

这里只需要注意校验就行了,我们直接跳过第一个校验,校验第二个0xAA就行了。最奇葩的是倒过来的。不需要程序都可以用usb转串口发数据.bit f_r;unsigned char f_1,r[3];void UartInit(void) //[email protected]{ PCON &= 0x7F; //波特率不倍速 SCON = 0x50; //8位数据,可变波特率 AUXR |= 0x40; //定时器1时钟为Fosc,即1T AUXR...

2019-05-18 10:08:22 3915 4

原创 AD采集(电位器模拟温度)

以前的比赛和训练题目,也就是用滑动变阻器改变电压,然后进行AD采集可以用于此方面功能,第三小题当时比赛现场写的,这里没体现此功能。可以配合我之前写的pwm控制电机程序实现#include <STC12C5A60S2.H>#include <intrins.h>#define uint unsigned int#define uchar unsigned c...

2019-05-08 11:12:20 3973

原创 stc12 密码锁(基于EEPROM)

I

2019-05-08 11:04:37 1008

原创 SYN6288中文语音合成 程序

51单片机比较麻烦些,用到串口,因为会被占用,所以每次下载程序都要重新拔插。注意接收和发送两头别接同错了。#include <reg51.h>#include <stdio.h>#define uchar unsigned char#define uint unsigned int//**********************************...

2019-05-08 10:59:18 7993 1

原创 HX711称重模块程序

去年省比赛准备51模块程序之一.以上部分截自于厂家数据手册。#include <STC12C5A60S2.H>#include"lcd12864.h"unsigned long HX711_Buffer = 0;unsigned long Weight_Maopi = 0;unsigned long Weight_Maopi_0 = 0;...

2019-05-08 10:55:20 26851 4

原创 HC-SR501人体红外感应模块程序

当感应到时,输出一个高电平。这里我对io口进行了配置,要不然读不到高电平。建议大家以后养成习惯,对io口进行配置,stm32中会用到。在这里我额外提下,一般在stm32中 浮空输入芯片内部没有接上下拉电阻。由于其输入阻抗较大,这种模式一般用于标准通信协议,如I2C、USART的接收端等模拟输入模式:芯片内部由另一条线路把电压信号传送到片上外设模块。如传送至ADC模...

2019-05-08 10:49:18 21494 4

原创 不同单片机ms级延时函数(stc12和51) 较为精准

stc12void delay(uint z){ uint x,y;for(x=z; x>0; x--) for(y=920; y>0; y--); }89c51/52void delay(uint t){ uint i; while(t--) for(i=0;i<110;i++);}用来写...

2019-04-22 10:52:04 4060

原创 LCD12864驱动显示程序

这里是用的并行写法,后续会更新串行 。并行缺点就是太占用io口了,我其实更喜欢用串行。不过不是比赛要求都不怎么用了。lcd12864.c#include"lcd12864.h"uchar code num[]={"0123456789 e:.-"};sbit RS = P3^5; //命令/数据选择 sbit RW = P3^6; //读写...

2019-04-22 10:49:30 18860 2

原创 利用单片机内部定时器产生pwm进行led呼吸灯调光

之前写过用内部pwm直接产生脉冲:https://blog.csdn.net/zy19981110/article/details/89446812这次写的是用定时器,不推薦用延时来模拟。此程序结合了我之前发的矩阵按键程序,按键进行亮度调整。#include"lcd12864.h"#include<reg51.h>uchar code num1[]={" 1234567...

2019-04-22 10:41:27 4887

原创 用STC12单片机内部PWM产生脉冲方波(直流电机调速/正反转)

这个程序是以前比赛时候准备的,方便用来调电机转速,也可作呼吸灯等。采用的是mx1508数字芯片作为直流电机驱动板,可双路输出。感觉比纯模拟电路的mos管好用还便宜。IN1和IN2是控制端(电机A),控制高低电平可以来控制正反转。没有调速端口。一个方案是在供电端给不同pwm进行调速,可io供电能力有限,速度可能会慢。所以另一个方案就是一个输入端口给pwm,改变电平;另一端输入口给固定电平就...

2019-04-22 10:35:14 8296 1

原创 一种矩阵按键扫描方法,很简略

去年大一比赛,因为时间问题,还有程序得现场手打,找老师要过他的程序,这种矩阵按键的确挺好用的,而且代码量不大。当时比赛4个小时,各种底层驱动还要自己手打,时间还是挺紧张的,当时功能要求都勉强写完了。一般我程序不另作介绍,一般都写在注释里了,平常没太多时间。不过这个程序还真没注释……矩阵按键解释起来感觉很麻烦。接法就按行P口低四位,列高4位接。#define uchar unsigne...

2019-04-22 10:10:44 2346

安卓手机蓝牙串口调试助手

无广告,可自定义快捷按钮发送数据

2023-03-21

超声波KS103高精度(串口看数据).zip

stm32f103用IIC来驱动超声波传感器KS103,用串口1发送数据看距离很精准。实测可行

2019-08-10

矩阵按键一种算法

大大减少了代码量,非常方便,调用和独立按键方式相同。有完整程序 并附有仿真图

2018-07-22

空空如也

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

TA关注的人

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