一、Systick的配置

1、简单介绍

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

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

2、我的源程序

void SysTick_Config(void){

SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK); /* 将AHB始终作为SysTick时钟源 */

SysTick_SetReload(72000*10); /* 每10毫秒发生一次中断,ucos的系统频率为100Hz */

//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;  /* PA0接着按钮PB3 */

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

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

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

/* 配置PB5为输出推挽方式,控制一个小绿灯 */

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);

/* 配置PB11-PB15为输入浮空方式,是摇杆五键输入 */

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; /* PC13脚接着按钮PB2 */

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOC, &GPIO_InitStructure);

/*液晶控制的IO口在LCD底层驱动函数中实现直接设置,PC0-PC12*/

}

转载于:https://www.cnblogs.com/ddlzq/archive/2009/10/30/1593278.html

智林STM32程序源代码的分析和整理03(转帖)相关推荐

  1. 阅读分析程序源代码的一些方法(转载整理)

    前言 最近项目组中有较多新成员需要阅读熟悉项目中已有的程序代码,好多成员一时间对项目代码摸不清头绪,这里在网络上收集了相关源代码阅读分析的一些方法,整理于此. 正文 摘自(繁体中文Traditiona ...

  2. python小程序源代码-整理了适合新手的20个Python练手小程序

    100个Python练手小程序,学习python的很好的资料,覆盖了python中的每一部分,可以边学习边练习,更容易掌握python. 本文附带基础视频教程:私信回复[基础]就可以获取的 [程序1] ...

  3. STM32程序DAP下载方式和串口下载方式分析

    STM32程序的DAP下载方式和串口下载方式分析 前提简述 DAP下载方式 串口下载方式 前提简述 本人学习的是STM32F1系列这款单片机.标准库对于新手来说作用还是非常大的,所以接下来关于这款单片 ...

  4. FFT STM32+apFFT程序源代码

    FFT STM32+apFFT程序源代码+lunwen资料 适用于STM32F103平台,使用AD7606同步采集两路正弦信号,内置1024点全相位快速傅里叶变换(apFFT)算法,直接计算到两路信号 ...

  5. 研究分析QQ木马程序源代码

    QQ 木马的源代码 如何判断系统 如何操作注册表 如何通过控制自己的进程得到其他进程的内容 如何复制文件 如何插入进程[也叫进程注射,好像这么叫] 如何通过SMTP法送邮件 针对QQ1230及2003 ...

  6. 51单片机C语言程序100例分析(1)IO+C语言+头文件

    51单片机C语言程序100例分析(1)IO+C语言+头文件 \\\插播一条:文章末尾有惊喜哟~///  P1=0xfe;//P1=11111110B,即P1.0输出低电平} 分析:通过这短短的几行代码 ...

  7. 《Android系统源代码情景分析》一书勘误

    在大家的支持和鼓励下,<Android系统源代码情景分析>一书得以出版了,老罗在此首先谢过大家了.本书的内容来源于博客的文章,经过大半年的整理之后,形成了初稿.在正式出版之前,又经过了三次 ...

  8. x264源代码简单分析:概述

    ===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...

  9. 使用gprof对程序的性能分析(集合贴)

    综述 gprof用于分析函数调用耗时,可用之抓出最耗时的函数,以便优化程序. gcc链接时也一定要加-pg参数,以使程序运行结束后生成gmon.out文件,供gprof分析. gprof默认不支持多线 ...

最新文章

  1. hdu1025 Constructing Roads In JGShining#39;s Kingdom(二分+dp)
  2. java生成HMACSHA256的方法
  3. 选择纯种犬还是杂种犬?
  4. PHP的composer dump-autoload
  5. 计算机应用的重要性作文,关于科技的重要性作文(通用5篇)
  6. iphone 调试技巧
  7. Facebook 推出查找SSRF 漏洞的新工具
  8. android log4j日志管理的使用
  9. Linux内核源代码阅读
  10. PHP架构师的成长之路
  11. 计算机物联网工程专业考研,物联网工程专业考研方向
  12. 输出素数并统计个数--C语言
  13. 遍历图像像素的几种方法
  14. 论文阅读:RGCF: Refined Graph Convolution Collaborative Filering with Concise and Expressive Embedding
  15. 怎样学好Python
  16. SCARA四轴机器人eye-to-hand手眼标定(九点标定)
  17. 键盘乱码,对键盘和数字均乱码,但数字键打出的还是数字,字母键打出的还是字母,只是乱了的起作用~
  18. 聚类之层次聚类、基于划分的聚类(…
  19. mp4文档ISO/IEC 14496 part 12解读
  20. 谈谈对python中的日期、时间、时区的理解(1)

热门文章

  1. 图像处理(二十四)Gradient Domain High Dynamic Range Compression学习笔记
  2. php 日期format不要零_PHP格式化日期用法代码,包括前导零示例
  3. python编程高手教程_写给编程高手的Python教程(01) 数据结构
  4. case when 效率高不高_扬州效率高的拍摄抖音短视频平台
  5. Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)!
  6. c语言中锁的作用,C语言中的多线程死锁
  7. Java基础---键盘录入工具(Scanner类)
  8. JQuery的 serializeObject 序列化form表单
  9. Docker Hub公共镜像仓库的使用
  10. java知识点八:时间日期类