- 博客(17)
- 收藏
- 关注
原创 基于STM32F103C8T6的FLASH的DAC音频输出
目录一、知识简述二、音频准备生成wav文件notepad++录制“您好欢迎光临”三、编写程序写入FLASH四、总结一、知识简述DAC简介 DAC 为数字/模拟转换模块,故名思议,它的作用就是把输入的数字编码,转换成对应的模拟电压输出,它的功能与 ADC相反。在常见的数字信号系统中,大部分传感器信号被化成电压信号,而 ADC把电压模拟信号转换成易于计算机存储、处理的数字编码,由计 算机处理完成后,再由 DAC输出电压模拟信号,该电压...
2021-12-31 21:51:31
1566
原创 stm32f103c8t6的内部Flash读取
代码:#include <opencv2/highgui.hpp>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int main(int argc, char** argv){ CvPoint center; double scale = -3; IplImage* image = cvLoadImage("lena.jpg"); argc ...
2021-12-31 13:05:28
2791
原创 用STM32F103 完成对SD卡的数据读取(FAT文件模式)
目录一、知识点二、操作三、编译烧录四、总结一、知识点SD卡协议原理1、SD卡简述很多单片机系统都需要大容量存储设备,以存储数据。目前常用的有 U 盘,FLASH 芯片,SD 卡等。他们各有优点,综合比较,最适合单片机系统的莫过于 SD 卡了,它不仅容量可以做到很大(32GB 以上),支持 SPI/SDIO 驱动,而且有多种体积的尺寸可供选择(标准的 SD 卡尺寸,以及 TF 卡尺寸等),能满足不同应用的要求。只需要少数几个 IO 口即可外扩一个高达 32GB 以
2021-12-22 19:34:51
457
原创 Ubuntu系统、STM32下重温全局变量、局部变量、堆、栈
目录一、重温全局变量、局部变量、堆、栈全局变量局部变量堆栈二、在Ubuntu(x86)系统和STM32(Keil)中分别进行编程、验证代码Ubuntu运行结果STM32(Keil) 准备工作三、总结一、重温全局变量、局部变量、堆、栈全局变量在所有函数外部定义的变量称为全局变量(Global Variable),它的作用域默认是整个程序,也就是所有的源文件。局部变量定义在函数内部的变量称为局部变量(Local Variab...
2021-12-20 17:33:17
582
原创 CLion安装和Stm32点灯
一、安装clion安装gcc-arm-none-eabi-10.3-2021.10 在官网上下载压缩包,解压之后 再把其中的bin加入到环境变量之后在命令行输入arm-none-eabi-gcc -v如果输出像上述图片一样就证明安装成功了。gcc安装链接如下:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
2021-12-19 18:28:08
308
原创 基于stm32cubemx移植uC/OS-III操作系统
目录一、获取uC/OS-III源码二、整理文件夹 2.1 新建文件夹 2.2 创建空文件 2.3 导入源码 2.4 创建基本stm32框架 2.5 导入文件和增加头函数路径 2.6 打开keil,增加item 2.7 加入文件编译路径三、改写代码 3.1 修改startup文件 3.2 修改CONFIG/app_cfg.h...
2021-12-04 15:15:04
872
原创 基于I2C的AHT20温度采集器以及基于SPI协议OLED显示
一、知识点 1.1 关于I2C协议I2C 通讯协议 (Inter - Integrated Circuit) 是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART 、 CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路 (IC) 间的通讯。物理层协议层主要是定义了通讯的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等。当SCL线是高电平时 SDA线从高电平向低电平切换,这个情况表示通讯的起始...
2021-11-25 18:13:57
143
原创 两台PC实现串口通信以及点阵字模读写
一、pc串口通信1.连线设置注意将一个串口的TXD连接另一个串口的RXD,接电源和接地连一起即可。2.打开调试助手2.1加载图片2.2 设置波特率为152002.3 点击发送文件预计时间为15s,但是在实际测试过程中用了21s3.将波特率设为2000000可见此时预测时间为0.6s,可是实际的传输时间为11s。4. 结果分析因为传输时延=文件大小/波特率,因为随着波特率的升高,丢...
2021-11-15 22:00:26
208
原创 stm32cubemx下stm32中断与串口DMA通信
目录一、外部中断,实现LED的闪亮与熄灭1.创建工程2.编译与写程序3.烧录4.实验结果二、串口中断实现串口通信1.创建工程2.重定向printf和scanf3.运行结果4.UART接收中断三、串口DMA接收发数据1.创建工程2.测试例程13.测试结果4.测试例程25. 测试程序四、总结五、参考链接一、外部中断,实现LED的闪亮与熄灭1.创建工程然后自动...
2021-11-06 18:19:23
875
原创 基于stm32CubeMX(Hal库)的stm32串口通信
目录一. 了解串口协议和RS-232标准,以及RS232电平与TTL电平的区别;了解"USB/TTL转232"模块(以CH340芯片模块为例)的工作原理1.1 串口通信协议概念1.2 RS-232标准1.3TTL标准二. 安装 stm32CubeMX,配合Keil,使用寄存器方式(汇编或C,不限) 或HAL库这两种方式,完成下列任务:2.1 安装Java2.2安装stm32CubeMX2.3安装固件库三、重做上一个LED流水灯作业,即用GPIO端口完成3只LED红绿灯..
2021-10-27 16:48:26
4399
3
原创 stm32流水灯
目录一、地址映射和寄存器映射1.总线基地址2.外设基地址3.寄存器地址二、GPIO端口初始化1.找到外设时钟的位置。此处用到GPIOB (时钟配置)2.下面选择如图所示(输入输出模式设置 、最大速率设置)三、串口USB TO TTL 与stm32F103核心板连接如下图所示四、启动方式说明:五、程序下载六、用C语言实现流水灯的闪烁1.代码2.准备工作3.生成HEX文件4.实验结果七、实验心得八、参考链接一、...
2021-10-24 20:40:26
941
原创 STM32 C 语言和汇编语言混合编程
目录一、C语言调用汇编函数二、将原汇编语言 Init_1函数的类型改为 int Init_1(init) ,此函数功能修改为 传入一个整型数x,函数运行后返回整型数 x+100三、在汇编函数中调用一个 C语言写的函数四、总结五、参考链接:MDK下C与汇编语言混合编程 - the7一、C语言调用汇编函数 1.打开keil 5新建工程 2.右击Source Group1 添加新项目3.点击 Asm File(.s) ,输入na...
2021-10-12 17:24:46
552
原创 Ubuntu下基于OpenCV完成图像程序编程
目录一、图像编程二、播放视频三、录制视频四、详细过程及代码解释一、图像编程代码:#include <opencv2/highgui.hpp>#include <opencv2/opencv.hpp>using namespace cv;using namespace std;int main(int argc, char** argv){ CvPoint center; double scale = -3; IplI...
2021-10-10 21:52:18
424
原创 gcc编译背后的故事及其常用命令
目录一、编译过程1.预处理2.编译3.汇编4.链接二、分析ELF文件1.ELF文件的段2.反汇编ELF检错库文件链接一、编译过程1.预处理extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__));# 912 "/usr/include/stdio.h" 3 4extern void flockfile (FILE *__stream) _...
2021-10-09 20:54:31
129
原创 gcc生成静态库.a和动态库.so
#ifndef HELLO_H#define HELLO_Hvoid hello(const char *name);#endif//HELLO_H#include<stdio.h>void hello(const char *name){ printf("Hello %s\n",name);}#include"hello.h"int main(){ hello("everyone"); return 0;}...
2021-10-09 11:02:16
60
原创 基于STM32汇编程序的编写
文章目录 一、创建一个新工程 二、添加文件 三、汇编程序 四、分析编译生成的Hex文件 五、总结一、创建一个新工程1.创建工程①点击Project,选择New uvison Project②选择文件保存的路径以及文件的名称2.环境配置①选择对应的芯片,本文章采用的STM32F103C8②运行环境选择,主要是CMSIS下选择CORE;Device下Startup,其中包含了启动文件自此,一...
2021-09-28 20:36:09
237
原创 本文目的是为了通过在Ubuntu系统上编译多个C程序来熟悉在Linux系统上编写C程序的操作。相关程序名称分别为test.c、sub1.h;以下采用两种方式进行编译一是直接gcc,二是makefile
目录一、直接使用gcc编译c程序 1.编写c程序2.gcc直接编译二、使用Makefile编译c程序三、总结一、直接使用gcc编译c程序 1.编写c程序在vim中输入命令 vim test.c 创建.c文件,然后在里面写代码,如上图一;图二sub1.h同理;输入 :wq 保存退出;2.gcc直接编译输入命令如图所示,最后结果为2.000000。步骤一命令:gcc -c sub1.c作用:将sub1.h程序转换为...
2021-09-09 21:31:58
312
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人