- 博客(19)
- 收藏
- 关注
原创 音频数据的Flash读取与DAC播放
目录一.Flash读取1.Flash原理1.Flash使用过程二.代码添加改写一.Flash读取1.Flash原理不同型号的 STM32,其 FLASH 容量也有所不同,最小的只有 16K 字节,最大的则达到了 1024K 字节。市面上 STM32F1 开发板使用的芯片是 STM32F103系列,其 FLASH 容量一般为 512K 字节,属于大容量芯片。Flash的编程原理都是只能将1写为0,而不能将0写为1,所以在进行Flash编程前,必须将对应的块擦除,即将该块的每一位都变为1,块内所有字节变
2021-12-30 21:45:06
1397
原创 SD卡数据读取Altium Designer下载
目录一.SD卡数据读取二.Altium Designer下载及原理图绘制1.Altium Designer软件安装安装Altium Designer元件库下载绘制stm32电路原理图一.SD卡数据读取二.Altium Designer下载及原理图绘制1.Altium Designer软件安装安装Altium Designer百度下载,参考链接链接: https://blog.csdn.net/weixin_42014622/article/details/83721000.元件库下载链接:
2021-12-23 10:39:30
2813
原创 CLion安装并基于 CLion 实现 stm32F103 点亮 LED
目录一.Clion介绍和安装1.Clion介绍2.安装Clion3.安装配置 arm-none-eabi-gcc4.安装配置 OpenOCD5.安装配置 MinGW创建工程1.创建2.配置3.添加代码结果一.Clion介绍和安装1.Clion介绍Clion 是一款专门开发 C 以及 C++ 所设计的跨平台的 IDE。它是以 IntelliJ 为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的 IDE 帮助开发人员在 Linux、OSX 和 Windows 上来开发 C/C++ ,同时它
2021-12-18 16:08:20
741
原创 基于ubuntu和stm32的C程序的内存分配问题
目录一、C程序的内存分配二、Ubuntu,stm32开发板编程,输出信息进行验证1.在Ubuntu上运行2.在stm32开发板上运行3.查看stm32地址的分配三.总结一、C程序的内存分配栈区(stack)由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区(heap)一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 。它与数据结构中的堆不同,分配方式类似于链表。全局区(静态区)(static)全局变量和静态变量的存储是放在一块的,初始化的
2021-12-18 14:01:34
179
原创 使用Keil仿真逻辑仪观察引脚电平变化
目录一.使用Keil仿真逻辑仪观察引脚电平变化二.使用SaleaeLogic16进行协议分析一.使用Keil仿真逻辑仪观察引脚电平变化打开Keil工程(uC/OS移植工程),点击以下图标点击Setup…添加引脚和串口Display Type均设置为Bit运行有错误,添加配置文件后缀.ini内容为:map 0x40000000, 0x40007FFF read write // APB1map 0x40010000, 0x400157FF read write // APB2
2021-12-03 18:11:52
3131
原创 STM32F103C8T6移植uCOS基于HAL库
目录一.使用CubeMX建立STM32F103C8T6HAL库二.准备uCOSIII源码三.移植前准备.将uCOS相关文件复制到HAL工程的MDK-ARM文件夹下四.开始移植1.将uCOS文件添加到项目2.为bsp.c和bsp.h添加代码3.修改main.c文件代码4.修改其余文件部分代码5.参数配置五.运行六.实现三个任务七.总结八.参考链接一.使用CubeMX建立STM32F103C8T6HAL库配置工程设置生成代码,进入工程在main.c文件中加入以下代码while (1)
2021-12-01 20:39:36
252
原创 基于stm32通过I2C接口AHT20实现温湿度
目录一.I2C总线协议实现AHT20采集程序总结一.I2C总线协议1.什么是I2C协议I2C 通讯协议(Inter-Integrated Circuit)是由 Phiilps 公司开发的,由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内多个集成电路(IC)间的通讯。2.I2C 协议的物理层和协议层①物理层I2C是一个支持设备的总线。可连接多个 I2C 通讯设备,支持多个通讯主机及多个通讯从机。对于I2C 总线,只使用两条总线线
2021-11-25 19:38:31
153
原创 STM32的0.96寸OLED显示屏显示数据
目录一.SPI1.简介2.工作模式3.通讯引脚二.用0.96OLED显示数据1.OLED原理简介三.OLED显示实验(1).实验目的(2).实验实现1.显示学号和姓名2.显示AHT20的温度和湿度3.滚动显示字符一.SPI1.简介SPI是串行外设接口(Serial Peripheral Interface)的缩写,是由 Motorola 公司提出的一种高速的,全双工,同步的通信总线,被广泛地使用在 ADC、LCD 等设备与 MCU 间要求通讯速率较高的场合。SPI总线系统可直接与各个厂家生产的多种标准
2021-11-25 19:26:18
5063
1
原创 点阵汉字的字模读取与显示串口文件传输
目录汉字的字模读取与显示一.汉字点阵字库原理1.汉字编码2.点阵字库结构3.汉字点阵获取二.汉字显示1.编写程序代码:2.程序运行三.总结串口文件传输一.实验要求二.实验设备三.实验操作总结汉字的字模读取与显示一.汉字点阵字库原理1.汉字编码(1)区位码·国标GD2312-80中,所有的国标汉字及符号分配在94行,94列的方阵中·方阵的每一行称为一个“区”,编号为01区到94区;每一列称为一个“位”,编号为01到94位·方阵中的每一个汉字和符号所在的区号和位号组合在一起形成的四个区拉伯数字就是
2021-11-18 20:43:13
626
原创 STM32之DMA实现串口通信
目录一.MDA介绍二.创建工程三.编写代码四.运行五.总结一.MDA介绍DMA(Direct Memory Access,直接存储器访问) 是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。
2021-11-04 15:05:07
529
原创 STM32之中断方式实现串口通信
目录一.创建工程二.代码编写三.运行四.总结一.创建工程设置生成代码二.代码编写在文件中定义缓冲区大小:定义缓冲区和标志位:在main()中定义接收成功信息:在while循环中发送成功信息和接收到的信息:在main.c中定义回调函数:三.运行烧录运行输入Halloworld,接收成功四.总结中断方式实现只需要在每字节数据收发完成后,由中断标志位触发中断,在中断服务程序中放入新的一字节数据或者读取接收到的一字节数据。参考链接:https://blog.
2021-11-04 14:42:52
488
原创 STM32之中断控制LED灯
目录一.中断二.创建工程三.运行一.中断(1)中断地址:程序的执行无非就是寻找地址,中断也是程序的一部分,而它的地址却是由内核来确定的,而且是不允许修改的。NVIC控制器可以帮我们找到中断的地址(2)中断优先级:优先级在中断里是一个非常重要的概念,如果同时产生多个中断,CPU会根据他们的优先级来选择这些中断的处理顺序。在CM4内核中,优先级用整数来表示,这个数越小代表级别越高。1.已经有中断在工作。根据抢占优先级决定,新来的中断打不打断原有中断,打断就发生中断嵌套,不打断就挂起等着。2.中断都在挂
2021-11-04 13:55:31
315
原创 串口通信---STM32
目录STM32 串口通信程序编写输出Hello world打开keil,新建工程运行使用HAL库代码编写STM32 串口通信程序编写输出Hello world打开keil,新建工程选择芯片STM32F103C8,关闭device,在工程中加入.s文件编写代码代码如下:;RCC寄存器地址映像 RCC_BASE EQU 0x40021000 RCC_CR EQU (RCC_BASE + 0x00) RCC_C
2021-10-27 17:28:57
226
原创 使用STM32CubeMX实现流水灯
目录一.安装STM32CubeMX在官网下载,选择版本,需要登录自己的邮箱选择安装路径打开软件,点击help,点击Manege embedded software packges二.实现流水灯新建工程New project选定下方的芯片,点击start project设置如下配置时钟GPIO设置项目配置点击Generate Code打开项目中的.c文件,在while循环中加入如下 HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, G
2021-10-27 16:42:46
144
原创 STM32 F103之点亮LED流水灯
目录一.使用工具二.点亮LED1.打开时钟(1)GPIO的地址:(2)时钟的地址:2.初始化3.设置低电平三.创建项目四.连接电路一.使用工具1.stm32f103c8t62.USB转串口3.面包板4.杜邦线5.LED灯若干二.点亮LED1.打开时钟(1)GPIO的地址:(2)时钟的地址:2.初始化以GPIOB和0号引脚为例,将其设置为推挽输出,并设置最大速度为10MHz,则控制B0的四个位设置为0001;#define GPIOB_CRL (*(unsigned int
2021-10-21 20:07:44
426
原创 MDK:在C语言和汇编语言中的相互调用
文章目录一.代码编写1.参考代码1.汇编语言 AREA My_Function,CODE,READONLY EXPORT Init_1;Init_1 MOV R1,#0; MOV R2,#0;LOOP; CMP R1,#10; BHS LOOP_END; ADD R2,#1; ADD R1,#1; B LOOP;LOOP_END; NOP END;2.C语言#include<stdio.h>extern void Init_1(void);int
2021-10-12 21:26:58
374
原创 gcc生成静态库.a和动态库.a以及Ubuntu18.04下opencv3.4.11安装及示例
目录一、用gcc生成静态库和动态库(一)hello示例使用库1.准备过程2.静态库使用3.动态库的使用4.静态库与动态库比较(二)示例1使用库二.opencv安装以及使用(一)认识opencv(二)安装opencv(三)使用示例---图片(四)使用示例---视频(五)录制视频三.总结四.参考资料一、用gcc生成静态库和动态库函数库分为静态库和动态库静态库:在程序编译时会被连接到目标代码中,程序运行是则不需要静态库的存在动态库:在程序编译时不会被连接到目标代码中,而是程序运行时载入的。两者区别:前者
2021-10-08 12:19:25
323
原创 2021-09-29
基于MDK创建纯汇编语言的STM32工程@文章目录新建工程2.配置环境2.1选择设备2.2选择运行环境2.3添加源文件3.测试代码3.1源代码3.2仿真器测试3.3编译测试4.总结1.新建工程打开keil5软件,点击project,点New uVision Project,然后新建工程如下接下来2.环境配置2.1选择设备2.2选择运行环境2.3添加源文件3.测试代码3.1 源代码接下来放入代码,代码如下:```javascriptAREA MYDAT
2021-09-29 22:59:28
60
原创 Ubuntu用gcc和makefile/在Windows系统下用Visual C++6.0编译C语言程序
一.目录1.ubuntu环境下c语言编写2.用Makefile方式编程主程序任务内容请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c。要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某个运算,将结果做浮点数返回;主程序main1.c,定义并赋值两整型变量,然后调用函数 x2x,将x2x的返回结果printf出来。1) 请在ubuntu系统用gcc 命令行方式编译主程序main1.c 并
2021-09-15 20:14:10
247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人