自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yx

  • 博客(44)
  • 资源 (12)
  • 收藏
  • 关注

原创 STM32CubMx (九) 配置FreeRtos工程

1.FreeRtos介绍      FreeRTOS是一个迷你的实时操作系统内核。是一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器、协程等,可基本满足较小系统的需要。特点包括:(1)FreeRTOS 的内核支持抢占式,合作式和时间片调度。(2)提供了一个用于低功耗的 Tickless 模式。(3)系统的组件在创建时可以选择动态或者静态的 RAM,比如任务、消息队列、信号量、软件定时器等

2021-12-29 09:54:33 738

原创 STM32CubMx (八) FLASH读写

1.FLASH介绍      FLASH存储器写入数据时,每一位只能由“1”变成“0”,不能由“0”变成“1“,因此,当我们有数据要保存到FLASH存储器时,要先对目标段进行整段擦除操作,擦除操作使对应段FLASH存储器变成全“1”,再对需要的位写为“0”,即完成写入操作。FLASH读写操作流程如下:(1)对FLASH写入数据      解锁FLASH  &n

2021-12-29 08:47:29 907

原创 STM32CubMx (七) IIC读写EEPROM

1.IIC介绍IIC属于半双工同步通讯方式。IIC总线上可以管多个器件,每个器件都有唯一的地址,这样可以标记通讯目标,数据的通讯采用主从方式,主机负责发送数据,而从机被动回应数据。两根信号线一个是数据线SDA(serial data I/O),另一根是时钟线SCL(serial clock)。2.EEPROM(1)器件型号M24128-BRMN6P(2)器件读写地址查看手册器件地址和E0、E1、E2管脚输入电平有关。写地址:0xA0读地址:0xA1WC管脚低电平允许写入3.具体配置

2021-12-28 13:59:23 1164 1

原创 STM32CubMx (六) IWDG独立看门狗

1.IWDG独立看门狗介绍(1)自由运行的递减计数器;(2)时钟由独立的RC振荡器提供(可在停止和待机模式下工作),LSI为其时钟源,STOP和SLEEP模式仍可运行;(3)看门狗被激活后,在计数器计数至0x000的的时产生复位。2.具体配置示例 设置 3s 的超时溢出IWDG counter clock prescaler 预分频器值设为 32IWDG down-counter reload value 重装载寄存器值设为 3000如下图所示,IWDG 时钟频率32KHz,32分频得到1K

2021-12-27 16:19:51 426

原创 STM32CubMx (五) ADC电压采集串口输出

1.具体配置本例使用管脚PF3,对应ADC3 通道9AD转换的模式,不扫描,连续转换.2.代码编写(1)main.c修改 uint16_t ADC_value; //AD转换值 float Real_value; //实际电压值while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_ADC_Start(&hadc3); if(HAL_ADC_PollForConv

2021-12-27 15:41:35 3480 1

原创 STM32CubMx (四) 串口DMA发送接收

1.DMA介绍DMA,全称Direct Memory Access,即直接存储器访问。DMA传输将数据从一个地址空间复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。作用就是解决大量数据转移过度消耗CPU资源的问题。有了DMA使CPU更专注于更加实用的操作–计算、控制等。DMA用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须CPU的干预,通过DMA数据可以快速地移动。这就节省了CPU的资源来做其他操作。2.具体配置(1)串口2配置step

2021-12-23 16:37:58 3575 1

原创 STM32CubMx (三) 定时器

1.定时器介绍(1)定时器1-14所挂载的时钟树(2)定时器发生中断时间的计算方法定时器时间=(Prescaler+1)X(Counter Period+1)/定时器时钟频率 单位:秒/sPrescaler 预分频器Counter Period 自动重装载寄存器示例:定时器6 定时0.5s计算方法时钟配置如下图,可以看到APB1总线时钟频率为42M,定时器频率为84MHz.配置Prescaler为8400-1,Counter Period为5000-1,可以得到0.5s的计时时间2.具

2021-12-23 10:07:02 1773

原创 STM32CubMx (二) 按键控制LED灯,GPIO操作

上节主要介绍了如何配置一个基础的工程以及如何翻转LED,本节内容是上节内容的延续,在LED灯的基础上,再添加按键部分,用按键控制LED的亮灭。1.创建工程打开之前LED的工程,进行添加。按键是KEY0,需要在工程中使能1个GPIO,将PE3使能,并且配置为输入模式。点击GPIO,配置PE3具体特性,选择输入,上拉模式(因为根据原理图,按键的另外一端是接地的,所以低电平有效,当我们按下按键的时候就是低电平,电路导通,按键触发),并且进行Label说明,在这里进行说明之后,生成的文件会自动对GPIO进

2021-12-22 17:33:19 1314

原创 STM32CubMx (一) LED灯控制

1.新建工程(1)点击File->NewProjec创建新工程(2)器件选型,输入芯片型号,选择正确封装,点击Start Project2.具体配置过程(1)点击System Core->RCC分别开启系统时钟,配置如下图所示(2)点击System Core->SYS,配置工程的仿真调试方式。使用的是 SWD 接口的仿真器,点击“Debug”下拉列表,选择 “Serial Ware” 选项,配置如下图所示(3)Clock Configration时钟树配置(4)GP

2021-12-22 17:12:58 729

原创 STM32 CubeMX软件下载

示例,后面博文中介绍关于的CubeMX使用是基于5.6.1版本。软件下载路径:https://www.st.com/stm32cubemx(1)点击 Get Software,跳转到页面底部(2)选择软件版本,点击下载

2021-12-22 11:54:28 341

原创 sgm41511电源管理芯片STM32 iic驱动

    SGM41511是一种电源管理和充电器设备,适用于使用大容量单电池锂离子或锂聚合物电池的手机和平板电脑等应用。SGM41511可以容纳多种输入源,包括USB、墙壁适配器和汽车充电器。它为5V输入(USB电压)进行了优化,但能够在3.9V到13.5V的输入电压下工作。它还支持JEITA模式,以确保电池在高温或低温下的充电安全。自动电源路径选择从输入源(VBUS)、电池(BAT)或两者为系统(SYS)供电是设备的另一个功能。电池充电电流可编程,最大可达3A(充电)

2021-02-23 10:32:37 5122 6

原创 提取字符串中数值转换成整型

提取字符串中数值转换成整型#include <stdlib.h>unsigned char *p1,*p2;unsigned char cmdbuff[50];unsigned char len;unsigned char databuff[]={"#AT+45012515\r\n"};unsigned int rx;int main(){p1 = strstr(databuff,“AT”);if(p1 != NULL){p2 = strstr(databuff,"\r\

2021-01-18 17:56:36 496

原创 2020-10-20

把整型数据转成字符串#include <stdio.h>unsigned char num[20]={0};int data = 101;unsigned char len=0;/***************************************************************************** 函数名 : int_to_str* 描 述 : 把整型数据转成字符串* 输 入 : Str接收字符串 num需转换的数字* 输

2020-10-20 15:48:09 150

原创 CODE 1

题目描述写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。输入描述:第一行输入一个有字母和数字以及空格组成的字符串,第二行输入一个字符。输出描述:输出输入字符串中含有该字符的个数。#include <stdio.h>#include <string.h>char str1[1000];char str2;int main(){ int i=0,j=0,num=0; char b

2020-08-19 21:54:33 525

原创 移远串口调试软件QCOM下载

非常好用的串口工具,网上搜索下载都要几十个积分,非常不合理。希望通过这个分享帮助更多有需要的人。链接:https://pan.baidu.com/s/1KfrFBcsymwSolZxqL2AugA提取码:1wkv

2020-08-18 17:35:36 6242 9

原创 常用shell命令 精简版

su 切换到root用户这里写目录标题1.经常使用1.经常使用(1) ls 查看文件/目录ls –l 查看详细文件列表ls -a 显示所有文件(2) cd 改变工作目录cd …/ 跳转到上一级目录[./]当前目录 […/]上一级目录cd /boot/ 跳转到指定目录...

2020-07-01 20:00:44 194

原创 KEIL下各芯片PACK包的安装

https://www.keil.com/dd2/Pack/#/eula-container

2020-06-30 14:12:17 5830

原创 16进制数组转字符串

实现功能16进制数组{0xE0,0x16,0x01,0x00,0x05} 转字符串"E016010005"#include <stdio.h>unsigned char dbuff[5]={0xE0,0x16,0x01,0x00,0x05};unsigned char sbuff[10];short i;unsigned char highByte, lowByte;int main(){ //16进制转字符串 for (i = 0; i < 5; i++

2020-05-11 14:35:17 2669

原创 RTC秒数和年月日时分秒互转

输入RTC秒数转换成年月日时分秒;输入年月日时分秒转换为RTC秒数;const uint8_t mon_table[12]={31,28,31,30,31,30,31,31,30,31,30,31};#define RTC_TIME_START_YEAR (2000)/*********************************************** 函数名 : RTC_IsLeapYear* 描 述 : 判断是否是闰年* 输 入 : uint16_t year 当前

2020-05-11 13:44:34 4080 2

原创 获取KEIL编译器编译时间用于管理固件版本

KEIL内置的__DATE__ 和 TIME 宏利用KEIL内置_DATE_和_TIME_宏获取编译日期和时间//加入MDK自己的年月日#define MDK_YEAR ((((__DATE__[7] - '0')*10 + __DATE__[8] - '0')*10 \ +(__DATE__[9] - '0'))*10+(__DATE__[10] - '0')) #define MDK_MONTH get_month()

2020-05-11 11:41:42 2695

原创 用EXCEL表格解析NEMA语句指定字段数据

实例NEMA0183原始数据$GNGGA,050615.00,2235.00890,N,11355.91260,E,2,27,0.77,43.9,M,,M,1,0000*5A字段0:$GPGGA,语句ID,表明该语句为Global Positioning System Fix Data(GGA)GPS定位信息字段1:UTC 时间,hhmmss.sss,时分秒格式字段2:纬度ddmm.mm...

2020-03-17 11:14:48 602

原创 用Matlab产生存放在ROM中的.coe文件格式的数据

利用Matlab来直接产生.coe文件,Matlab的完整代码如下:width=8;%rom中数据的宽度depth=256;%rom的深度y=0:255;y=fliplr(y);%产生要发送的数据,255,254......2,1,0fid=fopen('test_data.coe','w');%打开一个.coe文件%存放ROM中的.coe文件第一行字符串,16表示16进制,可以改成其...

2019-07-12 16:00:12 3415

原创 vivado中使用ROM IP核

1.在project中选择IP Catalog在IP Catalog中选择---->Block Memory Generator------>RAMs&ROMs&BRAM-------->Block Memory Generator2.basic 选择Single Port ROM3.设置PORT A的宽度和深度具体根据coe文件而定4.Load ...

2019-07-10 10:12:43 5324

原创 SPI总线verilog hdl实现(1)SPI通信

SPI总线传输只需要4根线就能完成,这四根线的作用分别如下:  SCK(Serial Clock):SCK是串行时钟线,作用是Master向Slave传输时钟信号,控制数据交换的时机和速率;  MOSI(Master Out Slave in):在SPI Master上也被称为Tx-channel,作用是SPI主机给SPI从机发送数据;  CS/SS(Chip Select/Slave Se...

2019-07-09 14:42:06 4047 3

原创 UART串口verilog hdl实现(4)串口回显功能的设计与实现

编写一个顶层模块把发送模块和接收模块均例化进去,然后从PC的串口调试助手上发送数据到FPGA,FPGA接收到数据以后把接收的数据返回给串口调试助手显示写一个顶层模块,把串口的发送模块与接收模块例化进去,把接收模块的接收完成标志位O_rx_done连接到发送模块的I_tx_start上,把接收模块的8-bit并行输出总线O_para_data连接到发送模块的8-bit并行输入总线I_para_da...

2019-07-08 16:49:59 1462 2

原创 UART串口verilog hdl实现(3)接收模块

波特率模块和发送模块都没问题以后,就可以开始编写接收模块的代码了。其中:  I_clk是系统时钟;  I_rst_n是系统复位;  I_rx_start是开始发送信号,当I_rx_start一直为高电平时,接收模块检测到有数据就会接收;  I_bps_rx_clk是接收模块波特率时钟信号,当检测到I_bps_rx_clk为高的时候就接收1个bit;  I_rs232_rx是串行的bit...

2019-07-08 16:20:38 2125 1

原创 UART串口verilog hdl实现(2)发送模块

有了波特率时钟以后,就可以开始编写发送模块的内部逻辑了。I_clk是系统时钟;  I_rst_n是系统复位;  I_tx_start是开始发送信号,当检测到I_tx_start为高电平时,立马把输入 I_para_data[7:0]的数据串行化成单bit的发出去;  I_bps_tx_clk是发送模块波特率时钟信号,当检测到I_bps_tx_clk为高的时候就发送1个bit...

2019-07-08 13:01:06 1888

原创 UART串口verilog hdl实现(1)波特率产生模块

串口通信主要包括三个模块:波特率产生模块、发射模块和接收模块。本节以波特率为115200bps为例来说明波特率模块设计方法,其余波特率可以以此类推。由于我的开发板上的时钟为50MHz,周期T=20ns,而波特率为115200bps,所以1个bit持续的时间是8.7us,那么每个bit占用的周期数N=(8.7us / 20ns) = 434,所以可以定义一个计数器,每当计数器从0计数到433的时候...

2019-07-05 16:52:21 6431 2

原创 Jlinko ob驱动

jlink ob驱动下载链接:https://pan.baidu.com/s/1C-0MYgHSU92PmJWGbyeoyA提取码:nbpu

2019-07-04 11:56:13 7372 2

原创 mealy状态机序列检测器设计

设计一个序列检测器。要求检测器连续收到串行码1110后,输出检测标志1,否则输出0。Mealy型状态机输出是由现状态和输入决定。状态机设计步骤:1.分析设计要求,列出全部可能状态;2.画出状态转移图;3.用Verilog hdl描述状态机,编写testbench验证。在这里插入代码片欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如...

2019-07-04 09:34:49 4955

原创 导航领域常用统计量RMS,CEP,Sigma

在GNSS产品中厂家提供这么几个精度参数:CEP、RMS,下面将详细介绍一下这几个精度参数的意义: CEP和RMS是GNSS的定位精度单位,也是个概率单位。就拿5M CEP说吧,意思是以5M为半径画圆,有50%的点能打在圆内,也就是说,GNSS定位在5M精度的概率是50%,相应的RMS(66.7%)2DRMS(95%)当然很多商家愿意给出CEP,因为单位大了,前面的数就小了,好看。 水平精度以...

2019-03-18 14:46:36 3636

原创 UTC时间转换成北京时间C语言函数代码

UTC + 时区差 = 本地时间时区差东为正,西为负。在此,把东八区时区差记为 +0800,UTC + (+0800) = 本地(北京)时间 (1)那么,UTC = 本地时间(北京时间))- 0800 (2)0942 - 0800 = 0142即UTC是当天凌晨一点四十二分二十二秒。如果结果是负数就意味着是UTC前一天,把这个负数加上2400就是UTC在前一天的时间。例如,本地(北京)时...

2019-02-25 10:04:42 25827 2

原创 大地坐标系和地心地固直角坐标ECEF转换公式和C语言函数代码

ECEF(x,y,z)转成大地坐标系(φ,λ,h)λ=tan^(-1)⁡〖(y/x)〗h=p/cos⁡∅ -N∅=tan^(-1)⁡〖[z/p 〖(1-e^2 N/(N+h))〗^(-1)]〗p=√(x2+y2 )#define RE_WGS84 6378137.0 /* earth semimajor axis (WGS84) (m) */#define ...

2019-02-24 20:18:15 4412

原创 地心地固直角坐标ECEF和大地坐标系转换公式和C语言函数代码

1.大地坐标系(φ,λ,h)转成ECEF(x,y,z)x=(N+h)cos⁡∅ cos⁡λy=(N+h)cos⁡∅ sin⁡λz=[N(1-e^2 )+h]sin⁡∅其中N是基准椭球体的卯酉圆曲率半径,e为椭球偏心率。/* transform geodetic to ecef position -----------------------------------------* t...

2019-02-24 20:01:26 4575

原创 树莓派学习:树莓派使用GPS模块

在树莓派测试GPS模块1.GPS模块一个,USB转串口模块CH3402.使用ttyUSB0而不是使用树莓派的板载串口ttyAMA0,因为ttyUSB0串口使用起来更方便,可以随意的插拔,还可以在电脑、手机等其他设备上使用。3.连接好GPS线,树莓派上插上USB串口,查看设备名ls /dev/ttyUSB*4.安装gpsd相关软件和库sudo apt-get install gpsd ...

2019-02-19 21:36:26 4801 1

原创 树莓派学习:连接USB转串口模块CH340使用

树莓派板子上只有一个串口,用于蓝牙和串口命令行,串口资源少,可以通过USB转串口增加串口资源。树莓派Linux raspberrypi 4.14.34-v7版本系统中集成了USB转串口驱动,将USB转串口模块插入USB口就可以使用。1.USB转串口模块CH340,插入树莓派USB口,命令行 lsusb 查看设备是否识别。2.查看识别成的串口号 ls -l /dev/tty*,通过列表可知识...

2019-02-19 14:23:30 10348

原创 树莓派学习:wiringPi库安装

WiringPi是应用于树莓派平台的GPIO控制库函数,WiringPi中的函数类似于Arduino的wiring系统。操作步骤:1.git clone git://git.drogon.net/wiringPi2.cd wiringPi3. ./build4.测试wiringPi包括一套gpio命令,使用gpio命令可以控制树莓派上的各种接口,通过以下指令可以测试wiring...

2019-02-18 21:16:05 3022

原创 树莓派学习:vi/vim编辑器指令

linux常用的编辑工具有nano ,vi/vim(vim是vi的增强版)等。1.卸载和安装vim编辑器删除旧版本vimsudo apt-get remove vim-common安装vimsudo apt-get install vim2.vi模式插入模式:在此模式下可以输入字符,按ESC将回到命令模式。命令模式:可以移动光标、删除字符等。低行模式:可以保存文件、退出vi、设置...

2019-02-18 19:32:43 2994

原创 树莓派学习:文件共享samba服务器

在windows和树莓派之间进行文件传输,使用samba服务可实现文件共享。在windows的网上邻居即可访问树莓派文件系统,非常方便。操作步骤1.运行 sudo apt-get install samba samba-common-bin 安装samba软件输入y,安装完成。2.修改配置文件,sudo vi /etc/samba/smb.conf配置每个用户可以读写自己的 hom...

2019-02-18 17:15:52 274

原创 树莓派学习:Linux指令学习新建文件,查看文件,修改权限,删除

1.新建文件 touch led.c说明:通常一般用mkdir创建文件夹,touch创建文件,注意命令和文件名加空格。2.编写文件内容vim led.c 进入编写窗口,输入 i 进入插入模式,输入要编写内容,按键盘ESC退出编辑,输入 :wq 保存并退出说明::wq 保存并退出:q! 强制退出并忽略所有更改:e! 放弃所有修改,并打开原来文件(部分Vim操作指令)3.修...

2019-02-18 15:58:08 15126

STM32与FPGA通信接口测试程序

FSMC接口写FPGA通信 为STM32程序 PPS_NEW 为FPGA程序 软件版本Quartus II 14.1

2022-01-04

stm32 cubmx软件配置adc电压采集,串口2输出源码

stm32 cubmx软件配置adc电压采集源码,串口2输出。

2021-12-27

stm32cubemx工程源码(定时器、gpio、UART DMA传输)

对应博客STM32CubMx专栏一到四文章的源码,包括led控制、定时器使用、uart dma传输,源码,完整cubemx工程。

2021-12-23

两点经纬度计算距离.xlsx

已知两点经纬度,自动计算距离。在表格分别输入两点的经度、纬度,即可计算出这两个点之间的距离长度。已知两点经纬度,自动计算距离。在表格分别输入两点的经度、纬度,即可计算出这两个点之间的距离长度。

2019-12-12

C语言读取文件

c语言文件操作,详细的给出了如何读取文本文件数据,以及存储数据到另外的文件中

2016-06-14

矩阵分析学习指导(完整版)电子档

矩阵分析学习指导(完整版),电子扫描版,很清晰,是一份非常好的资料。

2016-01-12

历年英语4级阅读文章翻译

本文档包含了99年到10年的英语4级考试阅读文章的翻译,比较齐全,值得一看

2016-01-12

丁丁串口助手软件

丁丁串口助手,非常好用的串口助手软件,开发必备。

2016-01-02

中英文字符编码查询软件

中英文字符编码查询软件能快速查询中英文字符的ASCII、区位码、GB2312 码、Big5 码、GBK 内码、Unicode 码、UTF-8 码和 UTF-16 码。体积小、效率高、使用方便、批量转换、即输即得和多进制显示等。

2016-01-02

字库制作软件

字库制作软件方便制作字库,主要功能就是把windows用中使用的矢量的ASCII码和汉字转换为点阵的英文点阵字库和汉字点阵字库,可以随意使用您系统中所有可用的字体,并且可以从文档中提取各汉字生成自己的小字库,非常适用于嵌入式系统、DOS编程以及各种工业编程的汉字显示。

2016-01-02

串口助手软件SerialPortUtility

非常好用的串口助手软件SerialPortUtility,推荐下载使用 非常好用的串口助手软件SerialPortUtility,推荐下载使用 非常好用的串口助手软件SerialPortUtility,推荐下载使用

2016-01-02

电子竞赛常用芯片的资料

较为详细的收集了各种常用芯片资料,包括大量的数据手册,

2011-07-31

空空如也

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

TA关注的人

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