智林STM32程序源代码的分析和整理03(转帖)
一、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(转帖)相关推荐
- 阅读分析程序源代码的一些方法(转载整理)
前言 最近项目组中有较多新成员需要阅读熟悉项目中已有的程序代码,好多成员一时间对项目代码摸不清头绪,这里在网络上收集了相关源代码阅读分析的一些方法,整理于此. 正文 摘自(繁体中文Traditiona ...
- python小程序源代码-整理了适合新手的20个Python练手小程序
100个Python练手小程序,学习python的很好的资料,覆盖了python中的每一部分,可以边学习边练习,更容易掌握python. 本文附带基础视频教程:私信回复[基础]就可以获取的 [程序1] ...
- STM32程序DAP下载方式和串口下载方式分析
STM32程序的DAP下载方式和串口下载方式分析 前提简述 DAP下载方式 串口下载方式 前提简述 本人学习的是STM32F1系列这款单片机.标准库对于新手来说作用还是非常大的,所以接下来关于这款单片 ...
- FFT STM32+apFFT程序源代码
FFT STM32+apFFT程序源代码+lunwen资料 适用于STM32F103平台,使用AD7606同步采集两路正弦信号,内置1024点全相位快速傅里叶变换(apFFT)算法,直接计算到两路信号 ...
- 研究分析QQ木马程序源代码
QQ 木马的源代码 如何判断系统 如何操作注册表 如何通过控制自己的进程得到其他进程的内容 如何复制文件 如何插入进程[也叫进程注射,好像这么叫] 如何通过SMTP法送邮件 针对QQ1230及2003 ...
- 51单片机C语言程序100例分析(1)IO+C语言+头文件
51单片机C语言程序100例分析(1)IO+C语言+头文件 \\\插播一条:文章末尾有惊喜哟~/// P1=0xfe;//P1=11111110B,即P1.0输出低电平} 分析:通过这短短的几行代码 ...
- 《Android系统源代码情景分析》一书勘误
在大家的支持和鼓励下,<Android系统源代码情景分析>一书得以出版了,老罗在此首先谢过大家了.本书的内容来源于博客的文章,经过大半年的整理之后,形成了初稿.在正式出版之前,又经过了三次 ...
- x264源代码简单分析:概述
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- 使用gprof对程序的性能分析(集合贴)
综述 gprof用于分析函数调用耗时,可用之抓出最耗时的函数,以便优化程序. gcc链接时也一定要加-pg参数,以使程序运行结束后生成gmon.out文件,供gprof分析. gprof默认不支持多线 ...
最新文章
- hdu1025 Constructing Roads In JGShining#39;s Kingdom(二分+dp)
- java生成HMACSHA256的方法
- 选择纯种犬还是杂种犬?
- PHP的composer dump-autoload
- 计算机应用的重要性作文,关于科技的重要性作文(通用5篇)
- iphone 调试技巧
- Facebook 推出查找SSRF 漏洞的新工具
- android log4j日志管理的使用
- Linux内核源代码阅读
- PHP架构师的成长之路
- 计算机物联网工程专业考研,物联网工程专业考研方向
- 输出素数并统计个数--C语言
- 遍历图像像素的几种方法
- 论文阅读:RGCF: Refined Graph Convolution Collaborative Filering with Concise and Expressive Embedding
- 怎样学好Python
- SCARA四轴机器人eye-to-hand手眼标定(九点标定)
- 键盘乱码,对键盘和数字均乱码,但数字键打出的还是数字,字母键打出的还是字母,只是乱了的起作用~
- 聚类之层次聚类、基于划分的聚类(…
- mp4文档ISO/IEC 14496 part 12解读
- 谈谈对python中的日期、时间、时区的理解(1)
热门文章
- 图像处理(二十四)Gradient Domain High Dynamic Range Compression学习笔记
- php 日期format不要零_PHP格式化日期用法代码,包括前导零示例
- python编程高手教程_写给编程高手的Python教程(01) 数据结构
- case when 效率高不高_扬州效率高的拍摄抖音短视频平台
- Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)!
- c语言中锁的作用,C语言中的多线程死锁
- Java基础---键盘录入工具(Scanner类)
- JQuery的 serializeObject 序列化form表单
- Docker Hub公共镜像仓库的使用
- java知识点八:时间日期类