自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 音频数据的Flash读取与DAC播放(精简)

音频数据的Flash读取与DAC播放一、创建STM32CUBEMX工程二、KEIL下的配置三、基于片内Flash的提示音播放程序四、参考文章一、创建STM32CUBEMX工程芯片选择F103C8配置定时器打开外部时钟配置时钟配置PC13为output对应板子上的LED设置堆栈大小为4K,导出二、KEIL下的配置将flash.c 和flash.h添加到工程中在main.c文件中添加flash.h头文件并定义两个变量数组在main函数中添加以下代码/* USER CODE

2021-12-30 18:11:56 1072

原创 【掌握SD卡协议原理,用STM32F103 完成对SD卡的数据读取】

掌握SD卡协议原理,用STM32F103 完成对SD卡的数据读取一SD卡模块介绍1、简介2、物理结构二、依托协议一SD卡模块介绍1、简介SD存储卡是一种基于半导体快闪记忆器的新一代记忆设备,由于它体积小、数据传输速度快、可热插拔等优良的特性,被广泛地于便携式装置上使用,例如数码相机、平板电脑和多媒体播放器等。控制器对 SD 卡进行读写通信操作一般有两种通信接口可选,一种是 SPI 接口,另外一种是 SDIO 接口。2、物理结构一张SD卡包括有存储单元、存储单元接口、电源检测、卡及接口控制器和接口驱

2021-12-24 11:34:05 358

原创 【学习使用Altium Designer绘制一个stm32最小系统的电路原理图,并在此基础上完成STM32+SD卡 的系统原理图设计。】

学习使用Altium Designer绘制一个stm32最小系统的电路原理图,并在此基础上完成STM32+SD卡 的系统原理图设计。一、Altium Designer 18的安装二、STM32+SD卡的系统原理图设计一、Altium Designer 18的安装放到网盘里了。链接:https://pan.baidu.com/s/1X-lJdIQpIJselnmpmU2lmA 提取码:ygmr解压安装包,运行AltiumDesigner18Setup.exe开始安装选择中文然后next。安装后

2021-12-23 20:16:01 141

原创 【归纳Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的分配地址】

归纳Ubuntu、stm32下的C程序中堆、栈、全局、局部等变量的分配地址一、内存分配1、全局变量与局部变量2、堆与栈二、Ubuntu 和 STM32 下的输出验证1、Ubuntu2、keil一、内存分配1、全局变量与局部变量全局变量:在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件。局部变量:定义在函数体内部的变量,作用域仅限于函数体内部。离开函数体就会无效,再调用就是出错。区别:2、堆与栈栈:是为执行线程留出的内

2021-12-23 19:21:56 817

原创 Clion源码编辑器的学习与实践

这里写目录标题一、环境安装1.1首先下载clion1.2安装完后运行clion一、环境安装1.1首先下载clionclion官网:CLion: A Cross-Platform IDE for C and C++ by JetBrains也可以通过网盘下载Clion2021.3链接:https://pan.baidu.com/s/1-uhNBBdWsPfgxBqaDqigqA提取码:qwer1.2安装完后运行clion点击开始一个试用:start trial,然后去往JetBrains官网

2021-12-14 18:40:47 691

原创 学习使用仪器对代码运行进行故障排查和功能调测

学习使用仪器对代码运行进行故障排查和功能调测1.Keil仿真逻辑分析仪分析波形1、点击魔法棒,设置如下参数2.在工程下添加debug.ini文件如果不添加该文件,就会报错,无法观察仿真波形(1)在MDK-ARM文件夹下先创建一个TXT文件,添加如下内容map 0x40000000, 0x40007FFF read write // APB1map 0x40010000, 0x400157FF read write // APB2map 0x40020000, 0x4007FFFF read

2021-12-05 10:49:40 225

原创 uc/OS系统移植

uc/OS系统移植一.使用CubeMX建立STM32F103C8T6HAL库二.准备uCOSIII源码三.开始移植四.运行效果五.实现三个任务一.使用CubeMX建立STM32F103C8T6HAL库配置RCC配置SYS设置PC13为GPIO_Output用于点亮LED灯设置串口USART1设置工程点击生成代码,并在Keil中打开该工程。在main函数中的while循环里添加语句while (1) { /* USER CODE END WHILE */ /

2021-12-05 09:51:00 228

原创 基于I2C/SPI总线的温湿度采集与OLED显示

基于I2C/SPI总线的温湿度采集与OLED显示一、协议简述1、I2C 协议2、SPI协议二、AHT20采集温湿度传至上位机三、基于SPI的OLED显示2、显示温湿度3、左右滑动显示(上方显示学号代码修改即可)一、协议简述1、I2C 协议I2C「Inter-integrated Circuit」总线支持设备之间的短距离通信,用于处理器和一些外围设备之间的接口,它只需要两根信号线来完成信息交换。I2C最早是飞利浦在1982年开发设计。I2C是同步传输信号,关于同步和异步这个经常在面试的时候会考到,同步

2021-11-26 13:36:48 191

原创 点阵汉字的字模读取与显示

点阵汉字的字模读取与显示一、PC机之间串口通信传输文件1、材料准备2、二、Ubuntu下的opencv:在图片上加汉字和数字1、理解汉字的机内码、区位码编码规则和字形数据存储格式。2、在Ubuntu下用C/C++(或python) 调用opencv库编程显示一张图片一、PC机之间串口通信传输文件1、材料准备两台笔记本电脑,两个USB转TTL模块,两条杜邦线.2、首先两个USB的RX和TX之间交叉相连,分别插到两台电脑的USB口上.打开串口助手,设置如下,打开文件并发送文件,这里选个较小的文件发送。

2021-11-15 12:20:04 3382

原创 STM32采用串口DMA方式连续发送数据

STM32采用串口DMA方式,用115200bps或更高速率向上位机连续发送数据1.CubeMX生成初始化代码1.1建立工程1.2串口配置步骤1.3代码生成2.编写代码开启DMA和不使用DMA的串口函数操作上区别不大,分别如下3.程序下载1.CubeMX生成初始化代码1.1建立工程芯片选择:打开cube软件,选择从芯片来创建工程,一般开发都是使用这个来开发,有的时候也可能使用另外两个,但不多,第二个基于ST提供的开发板创建工程,针对性高,第三个则选择ST提供的例程来创建工程。F4探索者的主控为ST

2021-11-04 14:22:41 1260

原创 HAL库实验中断开关点灯及串口通信

HAL库实验中断开关点灯及串口通信中断介绍1、什么是中断2、中断的作用3、中断的类型及优先级CubeMX中断方式点灯1、题目分析2、CubeMX工程设置3、代码撰写中断方式串口通信1、题目要求2、工程设置3、代码撰写4、串口助手通信中断介绍1、什么是中断中断是计算机独有的一种工作方式;在主程序执行的过程中,中断主程序的执行;在执行子程序的过程中,中断子程序的执行。中断程序主要是为某些特定控制功能而设定。与子程序不同,中断是随机发生且必须立即响应的。需要执行中断程序必须要有中断源(引发中断的信号)每个中

2021-11-03 17:47:16 450

原创 串口通讯协议和RS-232的介绍以及USB/TTL转232模块的工作原理

1 串口通讯协议简介串口通讯 (Serial Communication)是一种设备间非常常用的串行通讯方式,电子工程师在调试设备时也经常使用该通讯方式输出调试信息。 通讯协议,我们以分层的方式来理解,最基本的是把它分为物理层和协议层。物理层规定通讯系统中具有机械、电子功能部分的特性,确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑,统一收发双方的数据打包、解包标准。2 物理层串口通讯的物理层有很多标准及变种,我们主要讲解 RS-232 标准 , RS-232 标准主要规定了信号的用途、通讯接口以

2021-10-27 17:48:36 1837

原创 STM32的USART串口通讯程序

STM32的USART串口通讯程序一、了解串口通信及准备工作1.串口通信简介2.STM32 的 USART 简介二、USART串口实验1.实验要求2.实验原理3.实验代码4.程序烧录5.结果演示一、了解串口通信及准备工作1.串口通信简介串行通讯是指设备之间通过少量数据信号线,地线以及控制信号线,按数据位形式一位一位地传输数据的通讯方式。分类:(1)单工:数据传输只支持数据在一个方向上传输。(2)半双工:允许数据在两个方向上传输。但同一时刻只允许数据在一个方向上传输,它实际上是一种能够切换方向的单

2021-10-27 17:15:55 731

原创 安装 stm32CubeMX,配合Keil用GPIO端口完成3只LED红绿灯的周期闪烁。

安装 stm32CubeMX,配合Keil用GPIO端口完成3只LED红绿灯的周期闪烁。1、创建STM32CubeMX工程2、选择芯片型号3、UART时种选择为异步时钟4、串口中断5、选择LED输出6、选择外部时钟及GPIO-LED设置7、时钟树设置8、选择编译环境、堆栈选大9、每个外设(led、uart)单独文件保留10、ok11、在uart.c中添加一下代码int fputc(int ch,FILE *f){return HAL_UART_Trans

2021-10-26 17:50:39 916

原创 对使用STM32F103C8芯片实现流水灯的波形观察

对使用STM32F103C8芯片实现流水灯的波形观察一、配置观察波形所需要的环境二、波形图观察三、参考文献一、配置观察波形所需要的环境在上一篇博客利用STM32F103C8T6最小系统板点亮流水灯的基础上,勾选魔法棒选择Target再点debugparameter选择自己所用的芯片,我们用的芯片是STM32F103C8T6,所以写入STM32F103C8T6,要是忘记选用的芯片,也可以再Target处查看,如图:接下来Debug:选择logic Analyzer Window点击Se

2021-10-21 20:09:45 290

原创 利用STM32F103C8T6最小系统板点亮流水灯

利用STM32F103C8T6最小系统板点亮流水灯STM32F103C8T6芯片简介核心板原理图搭建流水灯电路修改工程模板代码实现STM32F103C8T6芯片简介根据STM32&STM8产品型号命名规则(参考:STM32单片机最小系统详解)可知: STM32F103C8T6这个命名中:STM32代表STM32家族,32位MCU;F代表产品类型为基础型;103代表特定功能为STM32基础型;C代表引脚数为48&49引脚;8代表内存容量为64KB;T代表封装为QFP;6代表温

2021-10-21 17:40:20 1489

原创 STM32下使用C语言与汇编语言混合编程

STM32下使用C语言与汇编语言混合编程一、创建工程和目录二、C语言调用汇编1.无参数调试2.有参数调试三、汇编语言调用C的函数一、创建工程和目录首先在Keil5创建一个工程,我这里创建一个dfgdfgdfgdg的工程,然后点击Source Group1添加文件添加完毕后输入代码如下Func.c文件:#include<stdio.h>extern void Init_1(void);int main(){ Init_1(); return 0;}二、C语言

2021-10-13 18:02:14 217

原创 每一个程序背后都站着一堆优秀的代码库。通过学习opencv图像库编程,了解如何借助第三方库函数完成一个综合程序设计。“学了opencv,妈妈再不担忧你不会图像编程啦!”。

学习opencv图像库编程,了解如何借助第三方库函数完成一个综合程序设计1. OpenCV使用事例1)使用示例——图片2)使用示例——视频3)录制视频1. OpenCV使用事例1)使用示例——图片代码编写:首先创建一个代码存放文件夹 code ,然后进入文件夹中。创建一个 test1.cpp 文件。gedit test1.cpp将下面的代码复制粘贴进去。test1.cpp:#include <opencv2/highgui.hpp>#include <opencv2/ope

2021-10-11 19:10:38 363

原创 Linux GCC 常用命令,GCC 编译器背后的故事

Linux GCC 常用命令,GCC 编译器背后的故事1 简介2 简单编译2.1 预处理2.2 编译为汇编代码2.3 汇编2.4 连接3 多个程序文件的编译4 检错5 库文件连接GCC:Binutils:C 运行库(一)准备工作(二) 编译过程1.预处理2.编译3.汇编4.链接(三)分析 ELF 文件1.ELF 文件的段2.反汇编 ELF1 简介GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C语言;它现在还支持 Ada 语言、C++ 语言、J

2021-10-10 16:46:53 267

原创 Linux 下用gcc生成静态库和动态库

Linux 下用gcc生成静态库和动态库一、用 gcc 生成 .a 静态库和 .so 动态库1.创建一个 test1 文件夹,将 hello.c 编译成.o 文件2.由 .o文件创建静态库,在程序中使用静态库3.由.o 文件创建动态库文件,在程序中使用动态库4.当静态库和动态库同名时,gcc 命令会使用哪个库文件二、(1)Linux 下用静态库.a文件的生成与使用1.编辑生成所需要的文件2.生成目标文件(xxx.o),生成静态库.a 文件3.使用.a 库文件,创建可执行程序(2)共享库.so 文件的生成与使

2021-10-10 16:10:06 91

原创 基于MDK创建纯汇编语言的STM32工程

一.新建工程二.配置环境三.实验一.新建工程1.打开keil52.点击菜单栏的Project创建一个新工程二.配置环境1.设置目标环境并选择选择合适的运行环境2.添加源文件鼠标右键单击SourceGroup1,选择.s格式创建汇编文件,输入代码。代码 AREA MYDATA, DATA AREA MYCODE, CODE ENTRY EXPORT __main__main MOV R0, #10 MO...

2021-09-25 15:47:29 65

原创 2021-09-11

Ubuntu系统下用C语言编写程序文章目录目录一、安装编译软件gcc二、编写c源文件及运行1.进行main1.c编译2.进行sub1.c编译3.输出结果三、用Makefile对程序进行编译四、在Dev C++上进行程序调试一、安装编译软件gcc1.打开终端2.安装编译器gcc:sudo apt-get install gcc二、编写c源文件及运行1.进行main.c编译输入命令touch main1.c 创建一个文件然后在文件中编写2.进行sub1.c编译输入命令tou

2021-09-11 20:48:56 67

空空如也

空空如也

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

TA关注的人

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