智林STM32程序源代码的分析和整理03

发布者:深沉思考最新更新时间:2015-08-13 来源: eefocus关键字:智林  STM32  程序源代码 手机看文章 扫描二维码
随时随地手机看文章
一、Systick的配置

1、简单介绍

   这是一个系统定时器,时钟源可以为AHB时钟,也可设置为SysClk/8。使用时先设定初始值,然后每来一个时钟,减去1,计数器为0时标志置位,也可触发中断。

   在我的程序中,Systick用作usos的工作时钟。

2、我的源程序

void SysTick_Config(void){

 

 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); 

    SysTick_SetReload(72000*10);

 //72MHz的频率下,计数72000需要1ms。

 SysTick_ITConfig(ENABLE);     

}

下面是中断服务程序

void SysTickHandler(void){

    OS_CPU_SR cpu_sr;

 

    OS_ENTER_CRITICAL();

    OSIntNesting++;   //中断嵌套计数

    OS_EXIT_CRITICAL();

 

    OSTimeTick();  //ucos的时钟服务程序

    OSIntExit();  //这里可以触发任务切换软中断  

}

 

二、GPIO的配置

1、PA口

   PA0对应按键PB3,开发板右下角。 PA1用于模拟电位器,JP1在这里。 PA2用定时器的PWM产生液晶的背光电源。PA4-PA7用于SPI模式操作SD卡。PA9,PA10用于串口0通信。PA11,PA12是USB差分线。PA13、PA14、PA15是JTAG的三个脚。

   PA3、PA8没用到。

2、PB口

  PB0用于扬声器,PB2与JP4用于Boot1选择。PB3和PB4是JTAG的另外两个脚。PB5控制绿色指示灯,在SD卡上面。PB6、PB7用于I2C的存储器。PB8、PB9用于CAN收发器。PB11-PB15用于摇杆按键。

   PB1和PB10没有用到

3、PC口

   PC0到PC7用于液晶的数据口,PB8-PB12分别用于读、写、命令数据选择、复位和片选。PB13是PB2按键,在PB3左边。PB14-PB15外接32.768KHz晶振。

以上是开发板上各个IO口的用途,通用IO口先在这里配置,其它复用功能的在相应的功能里配置,以下是源程序。

 

4、程序

void GPIO_Config(void){

 

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;  

 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//浮空输入

 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //最大速度50MHz

 GPIO_Init(GPIOA, &GPIO_InitStructure);       //对A口初始化

 

 

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

 GPIO_Init(GPIOB, &GPIO_InitStructure);

 

 

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_13| GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15;

 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

 GPIO_Init(GPIOB, &GPIO_InitStructure);

 

 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; 

 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

 GPIO_Init(GPIOC, &GPIO_InitStructure);

 

 

}

关键字:智林  STM32  程序源代码 引用地址:智林STM32程序源代码的分析和整理03

上一篇:智林STM32程序源代码的分析和整理04
下一篇:智林STM32程序源代码的分析和整理02

推荐阅读最新更新时间:2024-03-16 14:28

STM32学习之--外部中断
misc.h中定义的NVIC_InitTypeDef类型的结构体: typedef struct { uint8_t NVIC_IRQChannel; //中断向量 uint8_t NVIC_IRQChannelPreemptionPrio rity; //中断抢占优先级 uint8_t NVIC_IRQChannelSubPriority; //中断向量优先级 FunctionalState NVIC_IRQChannelCmd; //中断使能(ENABLE or DISABLE) } NVIC_InitTypeDef; 中断优先级组stm32中用4位来决定。
[单片机]
[STM32系列]你真的会使用SPI接口的NSS引脚吗
SPI接口介绍 SPI是串行外设接口(Serial Peripheral Interface)的缩写,是Motorola公司推出的一种高速的,全双工,同步的通信总线。SPI总线共有4根信号线,分别是:设备选择线、时钟线、串行输出数据线、串行输入数据线。 NSS:从设备使能信号,由主设备控制,低电平有效 SCK:时钟信号,由主设备产生 MOSI:主设备输出从设备输入信号 MISO:主设备输入从设备输出信号 STM32上的NSS STM32上SPI接口的NSS结构图如图1所示,除了外部的NSS引脚,还有内部NSS,且内部NSS状态可以由寄存器独立控制,也正因此,NSS引脚既可作输入也可作输出。 图1 NSS结构图
[单片机]
STM32数模转换器的说明
使用STM32 micros的 模拟数字转换器(ADC) 后,接下来要处理的明显内部硬件模块是 数字到模拟转换器(DAC) 。顾名思义,该模块仅具有ADC的补充功能。它将数字二进制值转换为模拟电压输出。 DAC模块具有多种用途,包括音频生成,波形生成等。通常在大多数8位微控制器中,该模块不可用,并且 脉冲宽度调制(PWM)可以稍微满足其需求。 》 块。部分原因是由于它们的硬件资源和运行速度相对较低。所有STM32单片机都具有PWM模块,但大容量STM32也具有DAC模块。 STM32 DAC模块不是很复杂,并且在工作原理方面与ADC模块相似。下面的简化框图显示了STM32 DAC模块的主要组件。 再次请注意低密度STM32微处
[单片机]
<font color='red'>STM32</font>数模转换器的说明
STM32 RCC配置
固件库 V3.5 IAR /* ---------------------函数实体--------------------------------*/ /******************************************************************************* * 函数名称: RCC_Configuration * 函数功能: 设置系统各部分时钟 * 参数变量: NONE * 全局变量: NONE * 调用函数: * 修改时间: * 版 本: V1.0 * 状 态:调试完成 *************************************************
[单片机]
STM32/ARM Cortex-M3复位序列
在离开复位状态后,CM3做的第一件事就是读取下列两个32位整数的值: 1)从地址0x0000 0000 处取出MSP的初始值 2)从地址0x0000 0004 处取出PC的初始值——这个值是复位向量,LSB必须是1.然后从这个值所对应的地址处取指,如下图1所示。 图1 请注意,这与传统的ARM架构不同——其实也和其它大多数的单片机不同。传统的ARM架构总是从0地址开始执行第一条指令,并且这是一条跳转指令。在CM3中,在0地址提供的是MSP的初始值,然后紧跟着的是向量表(向量表在以后还可以转移到其它位置)。向量表中的数值是32位的地址,而不是跳转指令。向量表的第一个条目指向复位后应执行的第一条指令。 因为
[单片机]
<font color='red'>STM32</font>/ARM Cortex-M3复位序列
stm32的互补输出和死区插入
1,简介 死区,简单解释:通常,大功率电机、变频器等,末端都是由大功率管、IGBT等元件组成的H桥或3相桥。每个桥的上半桥和下半桥是是绝对不能同时导通的,但高速的PWM驱动信号在达到功率元件的控制极时,往往会由于各种各样的原因产生延迟的效果,造成某个半桥元件在应该关断时没有关断,造成功率元件烧毁。死区就是在上半桥关断后,延迟一段时间再打开下半桥或在下半桥关断后,延迟一段时间再打开上半桥,从而避免功率元件烧毁。这段延迟时间就是死区。(就是上、下半桥的元件都是关断的)死区时间控制在通常的低端单片机所配备的PWM中是没有的。 PWM的上下桥臂的三极管是不能同时导通的。如果同时导通就会是电源两端短路。所以,两路触发信号要在一段时间内都是使
[单片机]
单片机学习之STM32中断
简介:STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。 1.中断优先级管理 嵌套向量中断控制器:Nested Vectored Interrupt Controller (NVIC) CM3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。 STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。 STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。 STM32F103系列上面,又只有60个可屏蔽中断(在
[单片机]
意法半导体二代STM32微处理器推动智能边缘发展,提高处理性能和工业韧性
新STM32MP2 MPUs搭载64位处理器和边缘 AI加速器 与生俱来的速度、安全性和可靠性 依托STM32生态系统,加快应用开发,安全配置网络 2024年3月12日,中国 -- 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST)发布了新一代的STM32MP2系列工业级微处理器 (MPUs),以推动智能工厂、智能医疗、智能楼宇和智能基础设施等领域未来的发展。 数字化转型席卷全球,它推动企业提高生产效率、改善医疗服务质量,加强楼宇、公用设施和交通网络的安全和能源管理。数字化的核心赋能技术包括云计算、数据分析、人工智能 (AI)和物联网 (IoT)
[单片机]
意法半导体二代<font color='red'>STM32</font>微处理器推动智能边缘发展,提高处理性能和工业韧性
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved