苏州大学电子信息学院嵌入式培训2_第1页
苏州大学电子信息学院嵌入式培训2_第2页
苏州大学电子信息学院嵌入式培训2_第3页
苏州大学电子信息学院嵌入式培训2_第4页
苏州大学电子信息学院嵌入式培训2_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八期全国电子专业人才师资培训班嵌入式设计与开发项目概 述 嵌入式设计与开发竞赛规则 CT117E硬件资源介绍 CT117E使用方法及程序设计 CT117E驱动安装及调试方法 使用Keil MDK开发环境编写一个应用程序 STM32外设模块介绍及编程 嵌入式设计与开发项目模拟题分析竞赛规则竞赛采用Cortex-M3处理器STM32F103RB。采用Keil MDK4.10集成开发环境。竞赛不涉及操作系统相关知识。竞赛分值比例:更多信息见大赛永久官方网站:CT117E简介(1) 嵌入式学习与实训产品 Colink调试器 STM32F103RB处理器 演示程序

2、选拔赛及决赛指定专用平台 支持Keil MDK及IAR EWARM集成开发环境CT117E简介(2) 处理器外设资源 72MHz Cortex-M3处理器 128K字节Flash,20K字节SRAM ADC USB RTC/Timer/SysTicks USART/I2C/SPI(EEPROM) GPIO(Led/Key/Buzzer/LCD)硬件资源 电源选择跳线-JP1 电容 USB头 5V-DC插座 三端稳压管AMS1117 复位电路 按键 电阻、电容硬件资源 CoLink调试工具 EEPROM芯片(ATMEL93C46) USB转串口芯片(FT2232) USB插座 JTAG调试接口(

3、CN7)关于CooCox的更多信息见网站:http:/http:/硬件资源 GPIO-LED/Key/Buzzer/LCD硬件资源 GPIO-LED GPIO-Key硬件资源 串行总线-SPI/I2C/USART/USB硬件资源 USB转串口驱动安装 通过USB(CN2)接口供电 选择“从列表或指定位置安装”CT117E使用方法CT117E使用方法 CooCox for MDK驱动安装 双击CoMDKPlugin-1.3.1 安装路径设置为Keil软件安装位置CT117E使用方法 程序调试与下载 单击Project菜单,单击“Options for Target” 在Debug标签中选择Coo

4、Cox DebbugerCT117E使用方法 程序调试与下载 单击Settings选项 在Debug的Adapter下拉菜单中选择ColinkCT117E使用方法 程序调试与下载 Flash Download 选项中单击ADD 选择STM32中密度产品(STM32F10 x Med-Density Flash)CT117E使用方法 程序调试与下载 单击Utilities标签 在下拉菜单中选择CooCox Debugger18CT117E程序设计 基于STM32固件库的程序设计步骤(1) 创建工程目录 相关文件拷贝 修改配置文件 创建工程,添加相关文件 设置路径 保存工程文件,进行程序调试CT1

5、17E程序设计 基于STM32固件库的程序设计步骤(2) 创建工程目录及文件拷贝拷贝STM32固件库Example中的stm32f10 x_it.c拷贝STM32固件库Example中的stm32f10 x_it.hstm32f10 x_conf.h根据产品Flash存储器大小,选择相应的启动代码,复制到所建文件夹中。CT117E程序设计 基于STM32固件库的程序设计步骤(3) 修改头文件-stm32f10 x.h定义STM32芯片的规模类型如果使用标准固件库,定义宏USE_STDPERIPH_DRIVERCT117E程序设计 基于STM32固件库的程序设计步骤(3) 修改配置文件-stm3

6、2f10 x_conf.hSTM32处理器外设资源头文件,可根据工程需求打开和关闭。CT117E程序设计 基于STM32固件库的程序设计步骤(3) 修改应用文件-stm32f10 x_it.c中断服务函数,根据程序设计要求,编写相关代码 基于STM32固件库的程序设计步骤(4) 创建工程,添加相关文件CT117E程序设计添加启动代码.LibrariesCMSISCM3DeviceSupportSTSTM32F10 xstartuparm文件system_stm32f10 x.c必须添加.LibrariesCMSISCM3DeviceSupportSTSTM32F10 x更具程序设计需求,选择性

7、添加驱动外设源文件。.LibrariesSTM32F10 x_StdPeriph_DriversrcCT117E程序设计 基于STM32固件库的程序设计步骤(5) 路径设置设置H文件路径:(1).LibrariesSTM32F10 x_StdPeriph_Driverinc(2).LibrariesCMSISCM3DeviceSupportSTSTM32F10 x(3).include(包含stm32f10 x_it.h、stm32f10 x_conf.h以及其它用户自定义的头文件)CT117E程序设计 编写一个应用程序(1) main.c#include “stm32f10 x.h” /*#

8、include “stm32f10 x_lib.h”*/ int main(void)RCC_Configuration(); /* 外设时钟使能 */ GPIO_Configuration(); /* 处理器IO引脚配置 */ NVIC_Configuration(); /* 中断控制器配置 */ USART_Configuration(); /* 串口配置函数 */ Sys_Init(); /* 系统初始化 */ while(1) 26CT117E程序设计 编写一个应用程序(2) stm32f10 x_it.c#include “stm32f103x_it.h” extern unsign

9、ed char Rx;void USART1_IRQHandler(void) /串口中断服务函数 if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET); Rx=USART_ReceiveData(USART1); USART_ClearITPendingBit(USART1, USART_IT_RXNE); /清除中断标志位CT117E程序设计 STM32外设模块介绍-GPIO IO引脚功能 IO引脚的结构 IO引脚编程方法 IO引脚测试程序-LED控制 IO引脚测试程序-Buzzer控制 STM32 IO引脚功能 通用I/O 单独的位设

10、置或位清除 外部中断/唤醒线 复用功能(AF)和重映射 GPIO锁定机制 CT117E程序设计CT117E程序设计 STM32 IO引脚结构(1)CT117E程序设计 STM32 IO引脚结构(2)CT117E程序设计 STM32 IO引脚编程方法 使能相应引脚时钟源 根据外设配置引脚工作模式 操作IO引脚输入输出CT117E程序设计/LED测试程序#include “stm32f10 x.h” /头文件void GPIO_Configuration(void); /函数声明void delay(u32 t); /函数声明int main(void)unsigned char i;GPIO_C

11、onfiguration(); /GPIO引脚配置while(1) /循环for(i=0;i8;i+)GPIO_Write(GPIOC,(1LOAD = (ticks & SYSTICK_MAXCOUNT) - 1; /#denfine SYSTICK_MAXCOUNT (124) 1) CT117E程序设计 基于SysTick的毫秒延时演示程序 main.c #include “stm32f10 x.h” void GPIO_Configuration(void); int main(void) GPIO_Configuration(); /GPIO配置 Systick_Config(Sys

12、temCoreClock/1000); /SysTick配置 while(1); stm32f10 x_it.c void SysTick_Handler(void) /Systick中断服务函数 TimingDelay_Decrement(); CT117E程序设计CT117E程序设计 基于SysTick的按键功能测试例程 按键区抖方法(硬件): RS触发器 滤波电容 按键去抖动(软件): 软件延时 STM32外设模块介绍-RTC STM32 RTC构成 STM32 RTC的编程方法 RTC测试例程CT117E程序设计CT117E程序设计 STM32 RTC的时钟源 LSI振荡器、LSE振荡

13、器或HSE振荡器128分频 STM32 RTC构成(1) APB1接口部分 RTC核心部分 预分频模块 32位独立定时计数器41CT117E程序设计 STM32 RTC构成(2) STM32 RTC的编程方法(1) 打开电源管理和备份寄存器时钟 使能RTC和备份寄存器的访问 选择时钟源 使能中断 设置RTC预分频器 fTR_CLK = fRTCCLK/(PRL19:0+1) fTR_CLK = fRTCCLK/(PRL19:0+1) 时钟源32.768KHz,预分频装载寄存器值为0 x7FFFF CT117E程序设计 STM32 RTC的编程方法(2) void RTC_Configurati

14、on(void) RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP,ENABLE);PWR_BackupAccessCmd(ENABLE); /使能RTC及备份寄存器的访问BKP_DeInit(); /BKP外设复位RCC_LSICmd(ENABLE); /打开因此使用内部低速振荡器while(RCC_GetFlagStatus(RCC_FLAG_LSIRDY) = RESET); /等待LSI准备就绪RCC_RTCCLKConfig(RCC_RTCCLKSo

15、urce_LSI);/选择时钟源 RCC_RTCCLKCmd(ENABLE); /使能RTC时钟RTC_WaitForSynchro(); /等待RTC时钟与APB时钟同步RTC_WaitForLastTask();RTC_ITConfig(RTC_IT_SEC, ENABLE); /使能RTC秒中断RTC_WaitForLastTask(); /等待RTC寄存器完成写操作RTC_SetPrescaler(40000); /设置RTC寄存器预分频值产生1秒信号RTC_WaitForLastTask(); /等待RTC寄存器完成写操作 CT117E程序设计 STM32 RTC测试例程int ma

16、in(void)NVIC_Configuration(); /中断配置RTC_Configuration(); /RTC配置RTC_WaitForLastTask(); /等待上次写操作完成RTC_SetCounter(RTCTime); /将计数值写入RTC寄存器RTC_WaitForLastTask();STM3210B_LCD_Init(); /LCD初始化LCD_Clear(Black);LCD_SetTextColor(White);LCD_SetBackColor(Black);while(1) RTC_LCDDisplay(); /获取时间并通过LCD显示 CT117E程序设计

17、STM32 USART结构 STM32 USART引脚配置 STM32 USART增强功能 STM32 USART硬件流控 STM32 USART的编程方法 STM32 USART中断测试程序CT117E程序设计 STM32 USART引脚配置(1)CT117E程序设计 STM32 USART引脚配置(2)CT117E程序设计 STM32 USART增强功能LIN模式 USART同步模式 USART单线半双工通信 USART的智能卡功能 USART的IrDA模式 USART的DMA通信 CT117E程序设计 STM32 USART硬件流控CT117E程序设计 STM32 USART编程方法(1

18、) 使能串口及GPIO引脚时钟源 复位串口 串口波特率及其它配置 数据发送与接收 串口状态查询CT117E程序设计 STM32 USART编程方法(2)void USART_Configuration(void)USART_InitStructure.USART_BaudRate = 9600; /设置串口传输波特率为9600 USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; /1位停止位USART_InitStru

19、cture.USART_Parity = USART_Parity_No; /无奇偶校验USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; /禁能硬件流控制模式USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;USART_Init(USART1, &USART_InitStructure); /USART1 配置USART_ITConfig(USART1, USART_IT_RXNE, ENABLE); /使能U

20、SART1接收中断/USART_ITConfig(USART1, USART_IT_TXE, ENABLE); /使能USART1发送中断USART_Cmd(USART1, ENABLE); /使能串口CT117E程序设计 STM32 USART中断测试程序(1)int main(void)GPIO_Configuration();NVIC_Configuration();/LCD初始化STM3210B_LCD_Init();LCD_Clear(Black);LCD_SetBackColor(Black);LCD_SetTextColor(White);USART_Configuration();while(1)if(RxOver = 1)/Line: X方向显示起始地址,Column:Y方向显示起始地址LCD_DisplayChar(Line*20,Column*16,RxByte);CT117E程序设计 STM32 USART中断测试程序(2)Column-;if(Column = 0)Column = 20;Line+;if(Line =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论