自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于STM32的flash读写和DAC音频播放

一、STM32的flash读写1.利用STM32CUBEMX创建工程之前有过很多次创建工程的例子,这里大致过程如下:2.keil中添加代码及修改配置在flash.c中添加如下代码,在main.c中添加代码,修改配置:编译仿真编译无误,然后下载到单片机中点击debug仿真,在view下打开memory1窗口,打开watch1窗口,并且勾选Periodic Windows Update开启变量自动更新,将变量FlashWBuff 和 FlashRBuff加入到

2021-12-30 22:43:10 1221

原创 用STM32F103完成对SD卡的数据写入

一、SD卡协议原理卡片初始化和识别流程当总线被激合后,主机就开始处理卡的初始化和识别。在主机发送SD_SEND_OP_COND(ACMD41)命令开始处理SD卡初始化时,主机会在ACMD41的参数中设置它的操作条件和设置OCR中的HCS位。HCS位被设置为1表示主机支持SDHC或者SDXC。HCS被设置为0表示主机不支持SDHC和SDXC。卡利用OCR里面的busy位来通知主机ACMD41的初始化已经完成。如果busy位为0,表示卡还在初始化,如果busy位为1,说明初始化已经完成。主机会在1

2021-12-22 22:30:25 1594

原创 Altium Designer的安装并绘制stm32最小系统的电路原理图

一、Altium Designer 18的安装软件资源放在百度网盘里面了:链接:https://pan.baidu.com/s/1WqECB8PvCsHoq46JeJoHUw提取码:93qa–来自百度网盘超级会员V1的分享首先解压安装包,打开exe文件安装过程:然后下面需要进行一些设置:将crack的一个文件复制到Altium Designer的安装目录下再次打开软件,如下图所示,配置完成二、原理图绘制首先打开Altium Designer,新建原理图,添加库

2021-12-21 20:10:01 250

原创 基于CLion2021实现stm32F103 点亮LED

一、安装CLion1.CLion介绍(1)Clion 是一款专门开发 C 以及 C++ 所设计的跨平台的 IDE。它是以 IntelliJ 为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的 IDE 帮助开发人员在 Linux、OSX 和 Windows 上来开发 C/C++ ,同时它还能使用智能编辑器来提高代码质量、自动代码重构并且深度整合 Cmake 编译系统,从而提高开发人员的工作效率。(2)CLion 支持 GCC、clang、MinGW、Cygwin 编译器以及 GDB 调

2021-12-18 21:34:43 812

原创 基于Ubuntu、stm32的C程序的内存分配

一、C程序内存分配栈区(stack)由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区(heap)一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。它与数据结构中的堆不同,分配方式类似于链表。全局区(静态区)(static)全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量、未初始化的静态变量在相邻的另一块区域。当程序结束后,变量由系统释放 。文字常量区存放常量字符串。当程序结束后,常量字

2021-12-18 13:33:26 107

原创 STM32F103C8T6移植uCOS

一、基于CubeMX建立(STM32F103C8T6)HAL库1.配置RCC2.配置SYS3.设置PC13为GPIO_Output(用于点亮LED灯)4.设置串口USART15.生成工程6.验证在Keil中打开该工程,然后在main函数中的while循环里添加语句while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_1

2021-12-07 21:59:04 480

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

一、基于I2C协议的AHT20温湿度传感器的数据采集1. I2C协议(1)定义I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。(2)物理层和协议层①物理层I2C是一个支持设备的总线。可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。对于I2C 总线,只使用两条总线线路,一条双向串行数据

2021-11-22 16:24:00 3495

原创 串口传输与Ubuntu下用C调用opencv库在照片上加汉字和数字

一、PC机之间串口通信传送文件1.实验器材两台笔记本电脑,两个USB转TTL模块,两条杜邦线,秒表。2.操作及实现效果两个USB的RX和TX之间交叉相连,分别插到两台电脑的USB口上打开串口助手设置如下,打开文件并发送文件,接收效果如下:理论传输时间 = ( 文件大小 × 8 ) / 波特率,波特率增大,时间就会减小,这里结果时间是要大于理论时间的,传输过程中出现了丢包重传的现象, 有时候接受方会出现接受暂停的现象,可能是由于杜邦线连接不稳。二、Ubuntu下用C调用openc

2021-11-19 19:33:28 178

原创 STM32之串口DMA通信

一、创建DMA工程首先创建工程,选择芯片设置RCC,选择Cystal,然后设置串口1.点击USATR12.设置MODE为异步通信(Asynchronous)3.基础参数:波特率为115200 Bits/s。传输数据长度为8 Bit。奇偶检验无,停止位1 接收和发送都使能4.GPIO引脚自动设置 USART1_RX/USART_TX使能中断DMA设置点击DMASettings 下的 Add 添加通道,传输速率设置为中速在System view下选择DMA进行时钟设置设

2021-11-05 21:28:15 1033

原创 STM32中断实现点灯及串口通信

一、STM32CUBEMX生成中断点灯代码先打开STM32CUBEMX,新建工程,选择芯片型号,我这里选择的是STM32F103C8,然后按下图所示选择Crystal,然后设置SYS,选择Serial Wire,紧接着设置GPIO,我这里是PB7接LED灯,设置为output,我这里是PB6接开关,设置为exit,这里选择上升沿触发,使能中断时钟设置,然后进行工程命名和选择IDE型号,然后点击右上角的GENERATE CODE即可生成代码。二、代码编写及烧录首先打开

2021-11-05 20:49:49 362

原创 STM32串口通信

一、USART通用同步异步收发器(Universal Synchronous Asynchronous Receiver and Transmitter)是一个串行通信设备,可以灵活地与外部设备进行全双工数据交换。串行通信一般是以帧格式传输数据,即是一帧一帧的传输,每帧包含有起始信号、数据信息、停止信息,可能还有校验信息。USART 就是对这些传输参数有具体规定,当然也不是只有唯一一个参数值,很多参数值都可以自定义设置,只是增强它的兼容性。二、编译代码新建一个工程然后下面不用勾选设置添加汇编

2021-10-27 21:45:18 94

原创 STM32CubeMX——环境配置以及实例编译烧写

一、STM32CubeMX环境配置1.安装STM32CubeMX官网下载:https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html首先进行安装:以管理员身份运行并安装SetupSTM32CubeMX-

2021-10-27 21:06:06 1690 2

原创 STM32利用GPIO寄存器实现流水灯

目录一、GPIO初始化1.时钟设置2.输出模式和输出速率设置二、代码三、实现效果四、总结五、参考文献一、GPIO初始化1.时钟设置这次实验用的GPIOA、GPIOB、GPIOC,查手册都是属于APB2.找到端口偏移地址以及对应端口所在位置2.输出模式和输出速率设置本次实验采用通用推挽输出模式,最高输出时钟频率50Mhz。分别用到A0、B5、C15三个引脚。其中A0、B5属于端口配置低寄存器偏移地址为0x00,C15属于端口配置高寄存器偏移地址.

2021-10-24 13:59:36 4590

原创 Keil5能编译.c文件,不能编译.s文件

在安装keil5之后,进行编译汇编程序.s时,出现错误:could not find file有些博客是叫我们修改环境变量,或者看自己路径有没有中文,我在尝试过这些方法之后,还是不能编译汇编程序,之后在某一篇百度文章里面看到了这个方法:点击keil5里面的魔法棒,点击进入Target,按照如下进行修改,然后进行编译即可。...

2021-10-19 12:34:32 3386 3

原创 Keil5下STM32的C语言与汇编语言混合编程

一、在keil5里面利用C语言调用汇编函数1.建立新工程首先点击Project里面的 New uVision Project...然后输入文件名,点击保存即可。我这里选择的芯片是STM32F103VE然后进行配置(如图):2.编辑代码首先在左上方工程下右击Source Group ,选择Add New Item to Group.......,C语言代码编辑:先创建C文件,点击C File(.c),然后输入name,点击Add...

2021-10-11 15:06:07 3086

原创 Ubuntu下opencv3.4.11的安装及示例演示

目录一、Ubuntu下opencv3.4.11的安装二、图片实例三、视频实例1.虚拟机获取摄像头权限(详细图片可见参考文献)2.播放视频3.录制视频四、总结五、参考文献一、Ubuntu下opencv3.4.11的安装1.查询Ubuntu的版本首先可以先查自己的Ubuntu是哪个版本,执行命令: cat /etc/issue就可以看见自己的版本。2.安装Ubuntu16.04下opencv3.4.11的安装(见参考文献)Ubuntu18.04下.

2021-10-10 11:36:14 323

原创 用gcc生成静态库和动态库并分析比较两者区别

目录一、用 gcc 生成 .a静态库和.so动态库二、实例一三、实例二四、总结五、参考文献一、用 gcc 生成 .a静态库和.so动态库第1步:编辑得到举例的程序--hello.h、hello.c和main.c;hello.c(见程序2)是函数库的源程序,其中包含公用函数hello,该函数将在屏幕上输出"Hello XXX!"。hello.h(见程序1)为该函数库的头文件。main.c(见程序3)为测试库文件的主程序,在主程序中调用了公用函数hello。..

2021-10-08 18:49:11 202

原创 利用Keil创建stm32汇编语言工程并仿真分析ARM寄存器变化

目录一、用Keil创建新项目1.新建工程2.编写汇编代码二、代码编写与调试1.在ftext.s中添加如下汇编代码2.程序编译3.程序调试三、总结四、参考文献(hex文件详解)一、用Keil创建新项目1.新建工程打开keil,点击Project,选择New uVision Project创建新工程随后命名文件后保存即可。然后选择芯片,这里我选择的是STM32F103VE,CMSIS选择CORE,Device选择Startup,...

2021-09-28 22:59:04 557

原创 嵌入式系统程序设计基础

1.请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算1术 运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。1) 请在ubuntu系统用gcc 命令行方式编译主程序main1.c 并运行;编写主程序:编写子程序:运行得:2) 请在w...

2021-09-14 19:52:49 61

空空如也

空空如也

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

TA关注的人

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