
STM32
文章平均质量分 64
zzwdkxx
这个作者很懒,什么都没留下…
展开
-
“undefined reference to“ 问题汇总及解决方法
https://blog.youkuaiyun.com/dyzhen/article/details/79815667转载 2021-02-24 21:54:05 · 1852 阅读 · 0 评论 -
STM32-DMA学习笔记
DMA,全称为:Direct Memory Access,即直接存储器访问。DMA传输方式无需CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为RAM 与I/O设备开辟一条直接传送数据的通路,能使CPU 的效率大为提高。 STM32中 DMA1有7个通道,DMA2有5个通道(DMA2 仅存在大容量产品中)。DMA挂载的时钟为AHB总线,其时钟为72原创 2013-06-04 22:46:17 · 37542 阅读 · 4 评论 -
STM32-串口超时判断方式接收未知长度数据
usart.c串口中断处理函数:void USART1_IRQHandler(void){ u8 res; if(USART1->SR&(1<<5))//接收到数据 { res=USART1->DR; if(USART1_Recv_Len<USART1_MAX_RECV_LEN) //还可以接收数据 { TIM3->CNT=0;原创 2013-03-10 15:39:38 · 10817 阅读 · 5 评论 -
STM32-USMART学习笔记
USMART移植步骤:1.将usmart组件添加到工程文件夹下,在选项和组管理即中,配置好头文件路径和组文件。2.usmart.c主要包含两个函数void usmart_init(u8 sysclk)和void usmart_scan(void),第一个函数里有个条件编译#if USMART_ENTIM2_SCAN==1,这个在usmart.h里设置。这个宏定义初始化定时器2,本实验在定时原创 2013-06-03 11:24:14 · 15243 阅读 · 0 评论 -
STM32-SPI实验学习笔记
void SPIx_Init(void){ RCC->APB2ENR|=1<<2; //PORTA时钟使能 RCC->APB2ENR|=1<<12; //SPI1时钟使能 //这里只针对SPI口初始化 GPIOA->CRL&=0X000FFFFF; GPIOA->CRL|=0XBBB00000;//PA5.6.7复用 GPI原创 2013-06-04 16:02:40 · 2785 阅读 · 1 评论 -
STM32-触摸屏实验
void Touch_Init(void);//初始化u8 Read_ADS(u16 *x,u16 *y); //带舍弃的双方向读取u8 Read_ADS2(u16 *x,u16 *y); //带加强滤波的双方向坐标读取u16 ADS_Read_XY(u8 xy); //带滤波的坐标读取(单方向)u16 ADS_Read_AD(u8 CMD); //读取AD转换值void AD原创 2013-06-05 22:45:02 · 7205 阅读 · 1 评论 -
STM32-外部中断学习笔记
中断分类 STM32的EXTI控制器支持19 个外部中断/ 事件请求。每个中断设有状态位,每个中断/ 事件都有独立的触发原创 2013-06-07 10:18:29 · 70728 阅读 · 9 评论 -
STM32-GPIO学习笔记
STM32F103RB有4个IO口(A~D),每个IO口都有7个寄存器控制,他们分别是: 端口配置寄存器(32位,共两个,CRL和CRH)数据寄存器(32位,共两个,IDR和ODR)置位/复位寄存器(32位,一个,BSRR)复位寄存器(16位,一个,BRR)锁存寄存器(32位,一个,LCKR)常用的IO寄存器只有四个,即CRL、CRH、IDR、ODR,他们分别原创 2013-02-27 15:51:47 · 2392 阅读 · 1 评论 -
一个字符输入的问题
mg323模块发送数据时必须要指明长度,所以我就把函数改了:void mg323_gprs_send(u16 x,u16 y,u8 *text_to_send,u8 text_length){ u8 a[15];u8 *p=a;memset(p,0,15);sprintf((char*)p,"AT^SISW=1,%c",text_length+48);原创 2013-07-02 08:24:20 · 1027 阅读 · 0 评论 -
自己写的STM32 内存管理 实现了malloc,free,remalloc等函数
转自:http://bbs.21ic.com/icview-246607-1-1.html这两天写的一个STM32上的内存管理函数,实现了malloc和free以及remalloc几个函数.还实现了一个内存使用率查询的函数.实验环境:ALIENTEK STM32 Mini 开发板思路如下:将内存分块管理.内存池等分为固定大小的内存块.建立一个内存状态表,对应每个块,转载 2013-09-05 22:12:56 · 4336 阅读 · 0 评论 -
Cortex‐M3 Thumb‐2 指令集
转自:Cortex‐M3权威指南转载 2013-12-02 21:02:48 · 2713 阅读 · 0 评论 -
STM32-串口实验学习笔记
USART1_IRQHandler(void)函数:当串口1发生了相应的中断,就会跳到改函数执行。这里设计了一个小小的接收协议(系统并未定义):通过这个函数,配合一个数组USART_RX_BUF[ ],一个接收状态寄存器USART_RX_STA实现对串口的数据的接收管理。USART_RX_BUF[ ]最大值为64,也就是一次接收的数据最大不能超过64字节。USART_RX_STA是一个接收原创 2013-03-01 22:15:14 · 7420 阅读 · 4 评论 -
单片机接收数据帧帧头帧尾校验数据解析
转自:http://blog.youkuaiyun.com/xr528787067/article/details/52822377前阵子一朋友使用单片机与某外设进行通信时,外设返回的是一堆格式如下的数据:[cpp] view plain copyAA AA 04 80 02 00 02 7B AA AA 04 80 02 00 08 75转载 2017-07-14 17:27:33 · 19385 阅读 · 0 评论 -
AHB和APB
AHB和APB都是外设时钟使能寄存器,你要用到哪个外设就使能某一位。 AHB是高级高性能总线,包含多个主机、从机、一个仲裁器和一个中央译码器,挂在这个总线上面的都是高速的东东,处理器、rom、ram、DMA等等,32位地址总线和32的数据总线,知道为什么叫STM32了吧,呵呵。 APB是高级外设总线,在这总线上面有usart、io、key、AD/DA等等这种外设,原创 2013-05-29 21:07:22 · 5172 阅读 · 0 评论 -
stm32标准外设库使用详解
转载请注明出处:http://blog.youkuaiyun.com/lbl1234下载代码 stm32标准外设库是stm32全系列芯片的外设驱动,有了它可以大大加速我们开发stm32。 首先从st公司的网站下载最新的stm32标准外设库,写本文时最新的版本是V3.5.0。 解压该zip文件,得到如下文件夹和文件STM32F10x_StdPeriph_Lib转载 2013-04-19 21:42:41 · 2962 阅读 · 0 评论 -
ucosii在stm32上的移植详解
http://blog.youkuaiyun.com/lbl1234转载 2013-04-19 21:45:26 · 994 阅读 · 0 评论 -
条件编译的用法
看正点原子的stm32串口初始化程序,usart.h文件里如下:#ifndef __USART_H#define __USART_H#include #include "stdio.h" extern u8 USART_RX_BUF[64]; //接收缓冲,最大63个字节.末字节为换行符 extern u8 USART_RX_STA; //接收原创 2013-01-08 20:45:14 · 4704 阅读 · 0 评论 -
关于STM32串口接收未知长度数据的网贴
转自:http://www.openedv.com/posts/list/0/11804.htm#top 串口字节处理超时------这个帖子写的很全面,很强大,看这个一个就足够!!!! 应此贴http://www.openedv.com/posts/list/6917.htm,给我发邮件的人有好几个,我不一一回了,发在这儿。 大部分串口都是基于一字节、原创 2013-03-04 20:08:55 · 9593 阅读 · 3 评论 -
STM32-跑马灯实验代码分析
工程建立的主要步骤1.新建3个文件夹:USER、SYSTEM、HARDWARE 2.新建led.c、led.h和test.c 3.在Target目录树上右击Manage Component,新建USER、SYSTEM、HARDWARE,并添加相关C文件(具体见前文MDK使用方法与技巧),跟前面一样HARDWARE组添加led.c文件。 4.在Options for Target ‘原创 2013-02-27 20:47:50 · 8276 阅读 · 3 评论 -
MDK使用方法与技巧
1 原来用的装的时候选的是ARM配置,结果现在用了stm32,建工程时没有启动代码提示(copy STM32 startup code to project folder and add file to project?),重装选择了STM系列的配置,问题解决。建stm32工程的步骤:先建立两个文件夹USER和SYSTEM,SYSTEM里面是启动代码,可以直接从现有的例程拷贝过去,然后在Targe原创 2013-01-10 10:36:21 · 9095 阅读 · 1 评论 -
STM32-按键输入实验学习笔记
按键扫描函数key.c片段://按键初始化函数//特别注意:在该函数之后,JTAG将无法使用(SWD也无法使用)//如果想JTAG仿真,可以屏蔽该函数。//PA0.13.15 设置成输入void KEY_Init(void){ RCC->APB2ENR|=1<<2; //使能PORTA时钟 GPIOA->CRL&=0XFFFFFFF0;//PA0设置成输入 GPIOA原创 2013-02-28 16:08:36 · 8111 阅读 · 1 评论 -
程序编译后FLASH和SRAM大小的计算
转载 2013-02-28 16:24:03 · 2107 阅读 · 0 评论 -
SystemInit()函数的结构分析
具体的分析见:http://wenku.baidu.com/view/3b995d708e9951e79b8927f5.html http://blog.sina.com.cn/s/blog_60e5783601017vbt.html系统函数调用顺序startup_stm32f10x_cl.s→ SystemInit() → SetSy原创 2013-04-24 15:56:59 · 3135 阅读 · 0 评论 -
端口复用和重映射
1 端口复用功能 所以,我们在使用复用功能的是时候,最少要使能2 个时钟: 1) GPIO时钟使能 2) 复用的外设时钟使能 同时要初始化GPIO以及复用外设功能 2 端口重映射 如果不需要重映射,只是使能复用就不用使能AFIO功能时钟。整理自:STM32开发指南V1.0(库函数版本)原创 2013-04-24 16:44:38 · 3902 阅读 · 1 评论 -
字、半字、字节的定义
定义字是根据处理器的特性决定的。首先ARM是32bit处理器,所以它的字是32bit的。半字自然就是16bit;字节不论在哪个CPU上都是8bit。如果在MSP430上,由于它是16bit处理器,所以它的字是16bit的。半字=字节=8bit。CPU按照其处理信息的字长可以分为:八位微处理器、十六位微处理器、三十二位微处理器以及六十四位微处理器等。 CPU最大能查找多大原创 2013-01-06 15:23:22 · 5165 阅读 · 0 评论 -
指针函数与函数指针的区别
from:http://www.cnblogs.com/gmh915/archive/2010/06/11/1756067.html一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数,函数返回类型是某一类型的指针。类型标识符 *函数名(参数表)int转载 2013-04-18 16:11:35 · 1166 阅读 · 1 评论 -
关于STM32F10x.s启动文件
在>,我们所有的例程都采用了一个叫STM32F10x.s的启动文件,里面定义了STM32的堆栈大小以及各种中断的名字及入口函数名称,还有启动相关的汇编代码。STM32F10x.s是MDK提供的启动代码,从其里面的内容看来,它只定义了3个串口,4个定时器。实际上STM32的系列产品有5个串口的型号,也只有有2个串口的型号,定时器也是,做多的有8个定时器。比如,如果你用的STM32F103ZET6,而转载 2013-04-26 13:23:37 · 3872 阅读 · 1 评论 -
STM32嵌入式微控制器快速上手——笔记
1、大端格式:数据的高字节存在低地址,低字节存在高地址; 小端格式:数据的低字节存在低地址,高字节存在高地址。2、arm公司推出的AMBA片上总线标准包括:AHB系统总线和APB外设总线。3、最大寻址空间4GB(2的32次方)。 CPU最大能查找多大范围的地址叫做寻址能力 ,CPU的寻址能力以字节为单位 ,如32位寻址的CPU可以寻址2的32次方大小的地址也就是4G,这也原创 2013-04-18 09:24:49 · 3887 阅读 · 0 评论