自定义博客皮肤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)
  • 收藏
  • 关注

原创 STM32F103C8T6进行DAC播放

1、使用DAC输出周期2khz的正弦波建议先用单音音频(比如2000Hz的正弦波)的wav数据进行实验,通过DAC或PCM音频模块能够基本还原出原始正弦波声音后,再用语言/音乐信号进行实验。生成单音正弦波文件—>新建—>音频文件...

2021-12-30 15:33:24 3147 3

原创 STM32F103C8T6的flash读写

目录一、使用cubeMX创建工程二、编译运行调试三、总结四、参考资料一、使用cubeMX创建工程管脚设置如下时钟设置如下定时器配置中断配置设置堆栈大小将事先准备好的flash.c 及flash.h加入到工程中(flash.h文件放在INC文件夹下即可):在main.c中添加以下代码二、编译运行调试没有问题,使用st-link连接stm32后进行调试点击memory1,输入0x800c000...

2021-12-29 23:09:48 5000

原创 使用Altium Designer 18绘制stm32f103c8t6和cd卡原理图

一、安装Altium Designer 18首先下载Altium Designer 18和元件库,网盘链接:https://www.aliyundrive.com/s/tZXniFAq33j文件夹中包含安装教程,可以直接参考文档进行安装安装和破解完毕后打开,添加元件库添加完后点击关close可以看到成功添加了元件库二、绘制stm32f103c8t6电路原理图首先新建一个PCB工程然后右键PCB. Project1.PrjPCB成...

2021-12-23 23:01:26 2074

原创 适用于stm32f103c8t6的st-link接线方式

本博客适用于STM32F103C8T6最小系统板,外观如下首先需要下载安装st-link的驱动,链接如下链接:https://pan.baidu.com/s/1EwMTGsOyckWO-XTQbUJH4A提取码:ykpzst-link如下对应最小系统板上的接口注意,使用st-link时需要额外供电给最小系统板,最后接线结果如下在keil中使用st-link不需要改option里面的debug,需要将use改成st-linkdebugger点击s...

2021-12-23 22:26:24 26181

原创 使用STM32F103C8T8写入SD卡

一、通过stm32cubeMX生成工程我们使用的是f103c8t6,所以选择如下PA4配置如下PA5配置如下PA6配置如下PA7配置如下PA9配置如下PA10配置如下PA13配置如下PA14配置如下勾选FATFS中的user-defined,保持默认不变SYS设置SPI1设置如下...

2021-12-22 16:34:54 1247

原创 stm32环境与Ubuntu环境下c语言的全局变量、局部变量、堆、栈

一、全局变量、局部变量、堆、栈1.全局变量变量分为局部与全局,局部变量又可称之为内部变量。由某对象或某个函数所创建的变量通常都是局部变量,只能被内部引用,而无法被其它对象或函数引用。全局变量既可以是某对象函数创建,也可以是在本程序任何地方创建。全局变量是可以被本程序所有对象或函数引用。2.局部变量局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量。局部变量的作用域是定义该变量的函数或定义该变量的复合语句。局部变量的生存期是从函数被调用的时刻算起到函数返回调用处的时刻结束。

2021-12-17 22:27:47 1307

原创 基于CLion编写STM32F103C8点亮LED的程序

一、安装Clion首先进入Clion官网进行下载CLion: A Cross-Platform IDE for C and C++ by JetBrains下载完成后开始安装,安装目录任选建议选择create desktop shortcut和add bin folder to the path,前者能够在桌面生成快捷方式,后者可以自动添加环境变量,省去了手动添加的步骤安装完成后建议重启电脑...

2021-12-15 23:56:00 708

原创 移植RTOS到STM32F103C8T6

一、利用STM32cubeMX生成HAL库文件打开STM32cubeMX,创建新工程配置PC13作为输出来点亮LED修改RCC配置修改sys配置修改工程配置生成代码将下列代码放入main.c的while中 HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO_PIN_SET); HAL_Delay(500); HAL_GPIO_WritePin(GPIOC, GPIO_PIN_13, GPIO..

2021-12-02 14:30:04 923 1

原创 OLED屏显和汉字点阵编码

一、SPI协议(1)SPI协议简介SPI 协议是由摩托罗拉公司提出的通讯协议 (Serial Peripheral Interface),即串行外围设备接口,是 一种高速全双工的通信总线。它被广泛地使用在 ADC、LCD 等设备与 MCU 间,要求通讯速率 较高的场合。(2)SPI物理层SPI 通讯设备之间的常用连接方式如下SPI 通讯使用 3 条总线及片选线,3 条总线分别为 SCK、MOSI、MISO,片选线为 SS ,它们的作 用介绍如下:①SS*(* Slave Se..

2021-11-25 22:52:52 1720

原创 基于I2C协议的AHT20温湿度传感器的数据采集

目录一、I2C协议(1)I2C协议简介(2)I2C物理层(3)I2C协议层起始信号与停止信号数据有效性响应(4)STM32 的 I2C软件I2C硬件I2C二、使用AHT20采集数据(1)AHT20芯片的相关信息(2)STM32F103C8T6连接AHT20进行温度采集三、总结四、参考资料一、I2C协议(1)I2C协议简介I2C 通讯协议 (Inter - Integrated Circuit) 是由 Phiilps 公司开发的...

2021-11-22 23:03:56 152

原创 简单的串口通讯

将两台笔记本电脑用 usb转rs232 模块和杜邦线建立起串口连接。然后使用串口助手从上位机发送信息给下位机。注意TX接RX,RX接TX,不需要接电源和地。双方都打开串口后即可通讯。

2021-11-18 19:14:02 4161

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

目录一、汉字编码(1)区域码(2)机内码二、点阵字库(1)16×16点阵(2)14×14 与 12×12 点阵字库三、汉字点阵获取(1)利用区位码获取汉字(2)利用汉字机内码获取汉字三、Ubuntu环境下使用opencv显示图片和学号姓名四、总结一、汉字编码(1)区域码在国标 GD2312—80 中规定,所有的国标汉字及符号分配在一个 94 行、94 列的方阵中,方阵的每一行称为一个“区”,编号为 01 区到 94 区,每一列称为一个“位”,编..

2021-11-17 21:49:41 1366

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

目录一、DMA1.DMA的概念2.DMA传输数据的四个要素3.STM32的DMA控制器特点4.传输方式二、用DMA方式连续向上位机发送数据三、总结四、参考资料一、DMA1.DMA的概念DMA常用于在外设与存储器之间以及存储器与存储器之间进行高速数据传输。DMA传输过程的初始化和启动由CPU完成,传输过程由DMA控制器来执行,无需CPU参与,从而节省CPU资源,提高利用率。2.DMA传输数据的四个要素3.STM32的DMA控制器特点1.STM32

2021-11-05 03:18:33 1348

原创 STM32F103使用中断方式控制LED

一、中断1.什么是中断中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。2.中断全过程3.中断的作用4.中断优先级5.中断响应过程二、STM32的中断系统1.优先级分组2.编程步骤在上述过程中,均可以使用STM32cubeMX完成、3.具体函数三、使用中断方式点亮LED首先使用STM32cubeMX创建工程,...

2021-11-05 00:32:49 1320 1

原创 从认识串口到串口通讯

目录一、串口协议和RS-232标准二、TTL电平三、RS232电平四、USB/TTL转232"模块(以CH340芯片模块为例)的原理五、使用stm32cubeMX生成工程及串口烧录HEX文件六、串口通信七、总结八、参考文献一、串口协议和RS-232标准串口通信指串口按位(bit)发送和接收字节。尽管比特字节(byte)的串行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,

2021-10-23 22:51:25 1402

原创 STM32地址映射和寄存器映射

什么是寄存器以及什么是寄存器映射在存储器 Block2 这块区域,设计的是片上外设,它们以四个字节为一个单元,共 32bit, 每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作。我们可以找到 每个单元的起始地址,然后通过 C 语言指针的操作方式来访问这些单元,如果每次都是通 过这种地址的方式来访问,不仅不好记忆还容易出错,这时我们可以根据每个单元功能的 不同,以功能为名给这个内存单元取一个别名,这个别名就是我们经常说的寄存器,这个 给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄

2021-10-17 17:16:47 2156

原创 在STM32下用c语言和汇编语言混合编程

目录一、例子二 、修改函数类型三、在汇编函数中调用一个C语言写的函数四、总结五、参考文献一、例子在项目下新建,main.c和fun.s代码如下main.cfun.s然后执行后结果如下设置得寄存器R1 R2的初始值为0,然后再c程序中调用汇编函数,即使用extern调用汇编函数,使达成其效果,使R1 R2从零开始逐一递加,直到加到十完成目标。二 、修改函数类型将原汇编语言 Init_1函数的类型改为 int Init_1(init) ,...

2021-10-11 16:06:03 398

原创 ubuntu20.04环境下安装opencv教程及测试

一、安装opencv(1)下载opencv-3.4.15数据包打开浏览器,进入下载地址Release OpenCV 3.4.15 · opencv/opencv · GitHub,选择Source code(zip)进行下载(2)解压将下载的文件移动到

2021-10-07 15:50:55 8242 7

原创 linux gcc常用命令

目录一、单程序编译(1)预处理(2)编译为汇编语代码(3)汇编(4)链接(5)运行二、多程序编译三、检错四、库文件链接五、gcc编译工具集中各软件GCCBinutilsC运行库六、ELF文件七、总结八、参考文献一、单程序编译以下面这个程序为例//hello.c#include<stdio.h>int main(){ printf("hello world\n"); return 0;}(

2021-10-06 15:02:53 304

原创 linux环境下用gcc生成.a静态库和.so动态库

目录一、用hello world作为例子(1)创建所需的hello.c,hello.h,main.c程序(2)生成.o文件(3)利用.o文件创建.a静态库(4)在程序中使用静态库(5)创建.so动态库文件(6)在程序中使用动态库(7)静态库和动态库优先级二、实例示范 (1)程序编写(2)生成静态库(3)生成动态库(4)静态库与动态库文件大小对比三、总结四、参考文献一、用hello world作为例子(1)创建所需的hell...

2021-10-05 17:51:19 311

原创 基于stm32f103的汇编语言工程仿真及HEX分析

目录一、创建新项目二、编写汇编语言、编译三、调试分析四、总结五、参考文献一、创建新项目打开keil,点击project->New μVision Project创建一个新项目命名文件后保存,选择STMicroelectronics->STM32F1 Series->STM32F103->STM32F103C8(其他型号同理)勾选CMSIS中的CORE和Device中的Starup,其中CMSIS中的CORE为Cortex-M...

2021-09-28 12:44:13 687

原创 在Ubuntu环境下使用gcc和Makefile编译c语言程序及与Windows环境下使用Dev C++编译C语言程序

前排提示:本文文本编辑均使用gedit进行编辑,vi和nano同理。一、Ubuntu环境下gcc编译C语言程序首先打开终端,输入gedit main1.cgedit是一个linux环境下的纯文本编辑器,通过上述代码即可得到以下界面在此界面即可直接输入C语言主程序代码#include"sub1.h"int main(){ int x=2,y=3; printf("%.5f\n",x2x(x,y)); return 0;}输入完成后右

2021-09-13 20:25:00 513

空空如也

空空如也

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

TA关注的人

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