stm32快速入门

发布者:Lianai最新更新时间:2024-10-21 来源: cnblogs关键字:stm32  快速入门  C语言开发 手机看文章 扫描二维码
随时随地手机看文章

stm32简单描述:stm32基于ARM cortex-m3(m4)架构。官方已经提供完备的片内私有外设及片内外设的函数库。非常有利于利用C语言开发。
准备工作:
1、仔细阅读以下资料的相关章节:
     1)cortex-m3权威指南
         这是本cortex-m3架构的经典书,通俗易懂。开始阅读可重点关注存储结构等。
    2)零死角玩转STM32
        很好的入门教程,注意里面相关内容:
        A、LibrariesCMSISCoreCM3startuparm下有些启动文件,对应不同芯片,注意选择。
    3)cortex-m3汇编启动代码分析
    4) stm32固件库详解
           PPP代表任一外设。
          头文年的层次包含关系
    5)stm32f10xxx使用手册
2、创建工程
    1)创建自已的项目文件夹(如:myproject:此文件夹下可放置以下文件:main.c system_stm32f10x.c stm32f10x_conf.h stm32f10x_it.c stm32f10x_it.h )
    2)在myproject文件夹下创建以下文件夹:
         project:用存放项目文件
                     listing:存放编译过程中产生的文件
         LIB:存放库文件
        USER:用户代码
    建立好各文件夹后,注意在project->options for target ' '设置好相关路径:output listing cc++下面的include path。选项设置里有一个有趣的设置,在cc++选项里,在define可设置条件编译。
3、点亮那颗灯
4、代码调试
    串口调试:用printf()打印信息到串口时,要重定义int fputc(int ch, FILE *f),在MDK里,此函数用一条宏定义了:#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f),具体实现参考下相关资料。

关键字:stm32  快速入门  C语言开发 引用地址:stm32快速入门

上一篇:STM32让printf通过串口打印及自定义printf函数
下一篇:STM32之一 建立工程及led闪烁

推荐阅读最新更新时间:2024-11-12 12:18

STM32单片机的酒精浓度探测仪设计
引言 酒后驾车是导致交通事故的一个重要原因,给人们的生活和生命安全带来巨大的危害。为了防止机动车辆驾驶人员酒后驾车,现场实时对人体呼气中酒精含量的检查已日益受到重视。本系统针对现有酒精传感器恢复时间较长的问题,通过计算斜率成功地实现了快速酒精浓度检测,缩短了检测间隔时间,大大提升了酒精检测的效率。 1 酒精浓度探测仪的整体结构 酒精浓度探测仪由单片机、酒精传感器、信号调理电路、语音报警模块、TFTLCD显示模块、通信模块、功放模块等部分组成,结构框图如图1所示。由于语音报警模块和TFTLCD显示模块对于单片机的处理速度和处理数据量要求高,再加上酒精检测反应速度较快,实时性较高,因此采用了ST公司的STM32系列的单片机作
[单片机]
<font color='red'>STM32</font>单片机的酒精浓度探测仪设计
STM32的书由三部分组成:主控,串行总线,外设传感器
因为一个嵌入式系统也确实就是由这三部分组成!!!! 单片机都是靠串行总线和外设连接的,所以那些公司招聘要求都写着总线协议是有道理的啊!!!!!一个嵌入式系统无非就是主控和外设,连接主控和外设的就是串行总线!!!!!就这么简单的道理。什么样的传感器选用什么样的串口你需要清楚。 所以STM32的固件库包含两部分,一部分就是对应一些外设的文件!!!!所以学STM32,无非就是两部分,一个是主控,一个是外设,再加一个那就是连接主控和外设的串行总线!!!!!!这么理一下一下子清晰了!!!!!!你去看野火的或者正点的STM32的书或者其他单片机的书,无非就是这三部分组成。 无人机你也可以说就是STM32+外设传感器组成的嘛,抛开算法不谈。
[单片机]
<font color='red'>STM32</font>的书由三部分组成:主控,串行总线,外设传感器
STM32在Kiel4中注意的问题
开发环境:KIEL4,芯片STM32F103VCT6。函数库VC3.5 1.配置开发环境。 2.Option for Target,主要是C/C++和debug两个部分设置。 3.变量和函数名自动补全以及中文乱码设置。 4.逻辑分析仪。信号不存在或者不能出图形。
[单片机]
<font color='red'>STM32</font>在Kiel4中注意的问题
stm32 堆和栈(stm32 Heap & Stack)
关于堆和栈已经是程序员的一个月经话题,大部分有是基于os层来聊的。 那么,在赤裸裸的单片机下的堆和栈是什么样的分布呢?以下是网摘: 刚接手STM32时,你只编写一个 int main() { while(1); } BUILD://Program Size: Code=340 RO-data=252 RW-data=0 ZI-data=1632 编译后,就会发现这么个程序已用了1600多的RAM,要是在51单片机上,会心疼死了,这1600多的RAM跑哪儿去了, 分析map,你会发现是堆和栈占用的,在startup_stm32f10x_md.s文件(这个是stm32的启动文件)中,它的前面几行就有以上定义, 这下该明白
[单片机]
<font color='red'>stm32</font> 堆和栈(<font color='red'>stm32</font> Heap & Stack)
STM32 USB时钟设置
原则:STM32 的USB时钟不能超过48MHZ,因此如果时钟源为72MHZ,就需要进行1.5分频: RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_1Div5); 如果时钟源为48MHZ,则进行1分频即可: RCC_USBCLKConfig(RCC_USBCLKSource_PLLCLK_Div1); STM32的时钟树如下:
[单片机]
<font color='red'>STM32</font> USB时钟设置
STM32开发 -- VS2017错误
出现如下错误: error C3688: 文本后缀“L”无效;未找到文文本运算符或文本运算符模板“operator “”“”L” 解决方法:在字符串里加引号用 原来宏定义为: #define CN_ASSERT(E) ((E) ? true : CnComm::Assert(_T(“CN_ASSERT(“)_T(#E)_T(“) failed; CnComm(“)CN_LINE(LINE)_T(“); “))) 修改为: #define CN_ASSERT(E) ((E) ? true : CnComm::Assert(_T(“CN_ASSERT(”)_T(#E)_T(”) failed; CnComm(”)CN_
[单片机]
STM32学习笔记之__attribute__ ((at())绝对定位分析
学习STM32也会遇到这样的绝对定位的问题如下: uint8_t UART_RX_BUF __attribute__ ((at(0X20001000))); //就是将串口接收的数据定位到RAM中起始地址为0X20001000; 绝对定位要么定位到flash、要么定位到RAM,这里我们将定位在flash进行说明。 MDK如何实现将数据存储到FLASH指定地址? 我们在烧录数据的时候,一般是从0x08000000开始按照顺序烧录到flash里面的,如何让数据能够定义到绝对地址如0800F000,就必须保证文件内数据也是存储在该地址,为了实现这个目的,MDK在生成文件时会填充0x00字段,从而确保能够将数据定义到
[单片机]
STM8|STM32 看门狗使用
STM8和STM32都配备了独立看门狗,其作用之大不言而喻。以下为STM8及STM32的独立看门狗使用例: 对于STM32单片机: #define SYS_IWDG_OPEN IWDG- KR=0xCCCC; #define SYS_IWDG_FEED IWDG- KR=0xAAAA; void SystemIWDG_Config(uint32 OverTime) { RCC- CSR|=RCC_CSR_LSION; while((RCC- CSR&RCC_CSR_LSIRDY)==0); IWDG- KR=0x5555; //使能模块访问 while(IWDG- SR&IWDG_S
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved