版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第八期全国电子专业人才
师资培训班嵌入式设计与开发项目第八期全国电子专业人才
师资培训班概述嵌入式设计与开发竞赛规则CT117E硬件资源介绍CT117E使用方法及程序设计CT117E驱动安装及调试方法
使用KeilMDK开发环境编写一个应用程序STM32外设模块介绍及编程嵌入式设计与开发项目模拟题分析概述嵌入式设计与开发竞赛规则竞赛规则竞赛采用Cortex-M3处理器STM32F103RB。采用KeilMDK4.10集成开发环境。竞赛不涉及操作系统相关知识。竞赛分值比例:竞赛规则竞赛采用Cortex-M3处理器STM32F103RCT117E简介(1)嵌入式学习与实训产品Colink调试器STM32F103RB处理器演示程序选拔赛及决赛指定专用平台
支持KeilMDK及IAREWARM集成开发环境CT117E简介(1)嵌入式学习与实训产品CT117E简介(2)处理器外设资源72MHzCortex-M3处理器
128K字节Flash,20K字节SRAMADCUSBRTC/Timer/SysTicksUSART/I2C/SPI(EEPROM)GPIO(Led/Key/Buzzer/LCD)CT117E简介(2)处理器外设资源硬件资源电源选择跳线-JP1电容USB头5V-DC插座三端稳压管AMS1117复位电路按键电阻、电容硬件资源电源选择跳线-JP1硬件资源
CoLink调试工具
EEPROM芯片(ATMEL93C46)USB转串口芯片(FT2232)
USB插座JTAG调试接口(CN7)硬件资源CoLink调试工具硬件资源
GPIO-LED/Key/Buzzer/LCD功能管脚名称外部设备管脚功能LED锁存PD2573锁存脚蜂鸣器PB4蜂鸣器驱动脚按键PA0按键B1PA8按键B2PB1按键B3PB2按键B4LCD模块PB9CS#PB8RSPB5WR#PB10RD#PC0~PC7低位总线PC8~PC15高位总线硬件资源GPIO-LED/Key/Buzzer/LCD功硬件资源
GPIO-LED硬件资源GPIO-LED
GPIO-Key硬件资源GPIO-Key硬件资源
GPIO-LCD硬件资源GPIO-LCD硬件资源
GPIO-Buzzer硬件资源GPIO-Buzzer硬件资源
串行总线-SPI/I2C/USART/USB硬件资源功能管脚名称外部设备管脚功能UART2(MUX)PA3RXD2PA2TXD2UART1PA10RXD1PA9TXD1SPI(SD卡)PB14SD0PB10SD1PB11SD2PB12SD3PB15SD_CMDPB13SD_CLKI2CPB6PB7SCLSDAUSBPA11USB_D-PA12USB_D+串行总线-SPI/I2C/USART/USB硬件资源功能
串行总线-SPI硬件资源串行总线-SPI硬件资源
串行总线-I2C硬件资源串行总线-I2C硬件资源
串行总线-USART1硬件资源串行总线-USART1硬件资源
串行总线-USART2硬件资源串行总线-USART2硬件资源
串行总线-USB硬件资源串行总线-USB硬件资源USB转串口驱动安装通过USB(CN2)接口供电选择“从列表或指定位置安装”CT117E使用方法USB转串口驱动安装CT117E使用方法CT117E使用方法
CooCoxforMDK驱动安装双击CoMDKPlugin-1.3.1
安装路径设置为Keil软件安装位置CT117E使用方法CooCoxforMDK驱动安装CT117E使用方法程序调试与下载单击Project菜单,单击“OptionsforTarget”
在Debug标签中选择CooCoxDebbugerCT117E使用方法程序调试与下载CT117E使用方法程序调试与下载单击Settings选项在Debug的Adapter下拉菜单中选择ColinkCT117E使用方法程序调试与下载CT117E使用方法程序调试与下载
FlashDownload选项中单击ADD
选择STM32中密度产品(STM32F10xMed-DensityFlash)CT117E使用方法程序调试与下载CT117E使用方法程序调试与下载单击Utilities标签
在下拉菜单中选择CooCoxDebuggerCT117E使用方法程序调试与下载CT117E程序设计基于STM32固件库的程序设计步骤(1)创建工程目录
相关文件拷贝
修改配置文件
创建工程,添加相关文件
设置路径
保存工程文件,进行程序调试CT117E程序设计基于STM32固件库的程序设计步骤(CT117E程序设计基于STM32固件库的程序设计步骤(2)创建工程目录及文件拷贝拷贝STM32固件库Example中的stm32f10x_it.c拷贝STM32固件库Example中的stm32f10x_it.hstm32f10x_conf.h根据产品Flash存储器大小,选择相应的启动代码,复制到所建文件夹中。CT117E程序设计基于STM32固件库的程序设计步骤(CT117E程序设计基于STM32固件库的程序设计步骤(3)修改头文件-stm32f10x.h定义STM32芯片的规模类型如果使用标准固件库,定义宏USE_STDPERIPH_DRIVERCT117E程序设计基于STM32固件库的程序设计步骤(CT117E程序设计基于STM32固件库的程序设计步骤(3)修改配置文件-stm32f10x_conf.hSTM32处理器外设资源头文件,可根据工程需求打开和关闭。CT117E程序设计基于STM32固件库的程序设计步骤(CT117E程序设计基于STM32固件库的程序设计步骤(3)修改应用文件-stm32f10x_it.c中断服务函数,根据程序设计要求,编写相关代码CT117E程序设计基于STM32固件库的程序设计步骤(基于STM32固件库的程序设计步骤(4)创建工程,添加相关文件CT117E程序设计添加启动代码.\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm文件system_stm32f10x.c必须添加.\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x更具程序设计需求,选择性添加驱动外设源文件。.\Libraries\STM32F10x_StdPeriph_Driver\src基于STM32固件库的程序设计步骤(4)CT117E程序CT117E程序设计基于STM32固件库的程序设计步骤(5)路径设置设置H文件路径:(1).\Libraries\STM32F10x_StdPeriph_Driver\inc(2).\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x(3).\include(包含stm32f10x_it.h、stm32f10x_conf.h以及其它用户自定义的头文件)CT117E程序设计基于STM32固件库的程序设计步骤(CT117E程序设计编写一个应用程序(1)main.c#include“stm32f10x.h”/*#include“stm32f10x_lib.h”*/
intmain(void){ RCC_Configuration();/*外设时钟使能*/ GPIO_Configuration();/*处理器IO引脚配置*/ NVIC_Configuration();/*中断控制器配置*/USART_Configuration();/*串口配置函数*/ …… Sys_Init();/*系统初始化*/ while(1) { …… } }CT117E程序设计编写一个应用程序(1)CT117E程序设计编写一个应用程序(2)stm32f10x_it.c#include“stm32f103x_it.h”
externunsignedcharRx;voidUSART1_IRQHandler(void)//串口中断服务函数{ if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET); { Rx=USART_ReceiveData(USART1); } USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清除中断标志位
}CT117E程序设计编写一个应用程序(2)CT117E程序设计
STM32外设模块介绍-GPIOIO引脚功能IO引脚的结构IO引脚编程方法IO引脚测试程序-LED控制IO引脚测试程序-Buzzer控制CT117E程序设计STM32外设模块介绍-GPIO
STM32IO引脚功能通用I/O单独的位设置或位清除外部中断/唤醒线复用功能(AF)和重映射GPIO锁定机制CT117E程序设计STM32IO引脚功能CT117E程序设计CT117E程序设计
STM32IO引脚结构(1)CT117E程序设计STM32IO引脚结构(1)CT117E程序设计
STM32IO引脚结构(2)CT117E程序设计STM32IO引脚结构(2)CT117E程序设计
STM32IO引脚编程方法使能相应引脚时钟源根据外设配置引脚工作模式
操作IO引脚输入输出CT117E程序设计STM32IO引脚编程方法CT117E程序设计//LED测试程序#include“stm32f10x.h”//头文件voidGPIO_Configuration(void);//函数声明voiddelay(u32t);//函数声明intmain(void){ unsignedchari; GPIO_Configuration();//GPIO引脚配置 while(1)//循环 { for(i=0;i<8;i++) { GPIO_Write(GPIOC,~(1<<(8+i)));//LED循环点亮
GPIO_SetBits(GPIOD,GPIO_Pin_2); GPIO_ResetBits(GPIOD,GPIO_Pin_2);//锁存器锁存 delay(500000);//延时 } }}CT117E程序设计//LED测试程序CT117E程序设计//Buzzer测试程序#include"stm32f10x.h"voidGPIO_Configuration(void);voiddelay(u32t);intmain(void){ GPIO_Configuration();//蜂鸣器引脚配置
while(1) { GPIO_SetBits(GPIOB,GPIO_Pin_4);//打开蜂鸣器 delay(3000000); GPIO_ResetBits(GPIOB,GPIO_Pin_4);//关闭蜂鸣器 delay(3000000); }}CT117E程序设计//Buzzer测试程序CT117E程序设计
STM32外设模块介绍-SysTickSysTick介绍SysTick编程方法
基于SysTick的毫秒延时演示程序基于SysTick的按键功能测试例程CT117E程序设计STM32外设模块介绍-SysTicCT117E程序设计SysTick介绍24位减法计数器,自动装载定时初值
计数频率为内核时钟SysTicks应用产生一个精准的延时函数
产生操作系统的时钟节拍CT117E程序设计SysTick介绍SysTick编程方法
SysTick配置函数(core_cm3.h):
static__INLINEuint32_tSysTick_Config(uint32_tticks)//例程
#include“stm32f10x.h”
intmain(void){ SysTick_Config(SystemCoreClock/1000);//配置Systick时钟配置、中断配置、重载值//重新载入值:SysTick->LOAD=(ticks&SYSTICK_MAXCOUNT)-1;//#denfineSYSTICK_MAXCOUNT((1<<24)–1)…… }CT117E程序设计SysTick编程方法CT117E程序设计基于SysTick的毫秒延时演示程序main.c#include“stm32f10x.h”voidGPIO_Configuration(void);intmain(void){ GPIO_Configuration();//GPIO配置Systick_Config(SystemCoreClock/1000);//SysTick配置……while(1);}stm32f10x_it.cvoidSysTick_Handler(void)//Systick中断服务函数{ TimingDelay_Decrement();
}
CT117E程序设计基于SysTick的毫秒延时演示程序CT117E程序设计CT117E程序设计基于SysTick的按键功能测试例程
按键区抖方法(硬件):RS触发器
滤波电容
按键去抖动(软件):软件延时CT117E程序设计基于SysTick的按键功能测试例程
STM32外设模块介绍-RTCSTM32RTC构成STM32RTC的编程方法RTC测试例程CT117E程序设计STM32外设模块介绍-RTCCT117E程序设计CT117E程序设计
STM32RTC的时钟源
LSI振荡器、LSE振荡器或HSE振荡器128分频STM32RTC构成(1)APB1接口部分RTC核心部分
预分频模块32位独立定时计数器CT117E程序设计STM32RTC的时钟源CT117E程序设计STM32RTC构成(2)CT117E程序设计STM32RTC构成(2)
STM32RTC的编程方法(1)
打开电源管理和备份寄存器时钟
使能RTC和备份寄存器的访问
选择时钟源使能中断
设置RTC预分频器fTR_CLK=fRTCCLK/(PRL[19:0]+1)fTR_CLK=fRTCCLK/(PRL[19:0]+1)
时钟源32.768KHz,预分频装载寄存器值为0x7FFFFCT117E程序设计STM32RTC的编程方法(1)CT117E程序设计
STM32RTC的编程方法(2)voidRTC_Configuration(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_RTCCLKSource_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程序设计STM32RTC的编程方法(2)CT117E程序设计
STM32RTC测试例程intmain(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程序设计STM32RTC测试例程CT117E程序设计
STM32USART结构STM32USART引脚配置STM32USART增强功能STM32USART硬件流控STM32USART的编程方法STM32
USART中断测试程序CT117E程序设计STM32USART结构CT117E程序设计
STM32
USART引脚配置(1)CT117E程序设计STM32USART引脚配置(1)CT117E程序设计
STM32
USART引脚配置(2)CT117E程序设计STM32USART引脚配置(2)CT117E程序设计
STM32
USART增强功能LIN模式USART同步模式USART单线半双工通信USART的智能卡功能USART的IrDA模式USART的DMA通信CT117E程序设计STM32USART增强功能CT117E程序设计
STM32
USART硬件流控CT117E程序设计STM32USART硬件流控CT117E程序设计
STM32
USART编程方法(1)使能串口及GPIO引脚时钟源
复位串口
串口波特率及其它配置
数据发送与接收
串口状态查询CT117E程序设计STM32USART编程方法(1)CT117E程序设计
STM32
USART编程方法(2)voidUSART_Configuration(void){ USART_InitStructure.USART_BaudRate=9600;//设置串口传输波特率为9600
USART_InitStructure.USART_WordLength=USART_WordLength_8b;
USART_InitStructure.USART_StopBits=USART_StopBits_1;//1位停止位
USART_InitStructure.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);//使能USART1接收中断
//USART_ITConfig(USART1,USART_IT_TXE,ENABLE);//使能USART1发送中断
USART_Cmd(USART1,ENABLE);//使能串口}CT117E程序设计STM32USART编程方法(2)CT117E程序设计
STM32
USART中断测试程序(1)intmain(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程序设计STM32USART中断测试程序(1)CT117E程序
STM32
USART中断测试程序(2) Column--; if(Column==0) { Column=20; Line++; if(Line==12) { LCD_Clear(Black); //写满清除屏幕
Line=0; } } //清除接收完成标志
RxOver=0; //打开串口接收中断
USART_ITConfig(USART1,USART_IT_RXNE,ENABLE); } }} CT117E程序设计STM32USART中断测试程序(2)CT117E程序模拟题分析功能描述“模拟停车场停车计费系统”用于对进场停车的车辆进行管理和收费;系统能够检测车辆的进场和离场状态,计算停车时间长短,并根据停车时间的长短和收费标准做出相应的报价。系统框图
模拟题分析功能描述模拟题分析设计任务及要求(1)按键输入单元10个车位,按键B1:进场,按键B2:出场
指示灯和蜂鸣器L1灯亮:有空余车位,L2灯亮:无空余车位,此时按B1键,蜂鸣器响
串口输入单元进场、出场:通过串口输入ID号,格式:IDx(x:1~10)费率:通过串口输入,格式:Fx(x:1~10)
模拟题分析设计任务及要求(1)模拟题分析设计任务及要求(2)进场、出场画面系统初始化状态系统初始化后,停车场具有10个空余车位;系统初始化后默认收费标准为1(元/小时);LCD屏幕显示收费标准模拟题分析设计任务及要求(2)模拟题分析试题分析(一)
用到的外设资源GPIO(LED、LCD、Key、Buzzer)USART(串口接收)RTC(选择LSI振荡器)模拟题分析试题分析(一)模拟题分析试题分析(二)
主要函数LCD显示,调用LCD底层库LED,Key,Buzzer直接调用固件库的IO口操作函数USART串口USART_GetID():读取串口输入ID值USART_CheckFeeRate():检测并读取费率命令读取实时钟RTC_GetCounter()模拟题分析试题分析(二)模拟题分析程序流程图
模拟题分析程序流程图ThanksThanks第八期全国电子专业人才
师资培训班嵌入式设计与开发项目第八期全国电子专业人才
师资培训班概述嵌入式设计与开发竞赛规则CT117E硬件资源介绍CT117E使用方法及程序设计CT117E驱动安装及调试方法
使用KeilMDK开发环境编写一个应用程序STM32外设模块介绍及编程嵌入式设计与开发项目模拟题分析概述嵌入式设计与开发竞赛规则竞赛规则竞赛采用Cortex-M3处理器STM32F103RB。采用KeilMDK4.10集成开发环境。竞赛不涉及操作系统相关知识。竞赛分值比例:竞赛规则竞赛采用Cortex-M3处理器STM32F103RCT117E简介(1)嵌入式学习与实训产品Colink调试器STM32F103RB处理器演示程序选拔赛及决赛指定专用平台
支持KeilMDK及IAREWARM集成开发环境CT117E简介(1)嵌入式学习与实训产品CT117E简介(2)处理器外设资源72MHzCortex-M3处理器
128K字节Flash,20K字节SRAMADCUSBRTC/Timer/SysTicksUSART/I2C/SPI(EEPROM)GPIO(Led/Key/Buzzer/LCD)CT117E简介(2)处理器外设资源硬件资源电源选择跳线-JP1电容USB头5V-DC插座三端稳压管AMS1117复位电路按键电阻、电容硬件资源电源选择跳线-JP1硬件资源
CoLink调试工具
EEPROM芯片(ATMEL93C46)USB转串口芯片(FT2232)
USB插座JTAG调试接口(CN7)硬件资源CoLink调试工具硬件资源
GPIO-LED/Key/Buzzer/LCD功能管脚名称外部设备管脚功能LED锁存PD2573锁存脚蜂鸣器PB4蜂鸣器驱动脚按键PA0按键B1PA8按键B2PB1按键B3PB2按键B4LCD模块PB9CS#PB8RSPB5WR#PB10RD#PC0~PC7低位总线PC8~PC15高位总线硬件资源GPIO-LED/Key/Buzzer/LCD功硬件资源
GPIO-LED硬件资源GPIO-LED
GPIO-Key硬件资源GPIO-Key硬件资源
GPIO-LCD硬件资源GPIO-LCD硬件资源
GPIO-Buzzer硬件资源GPIO-Buzzer硬件资源
串行总线-SPI/I2C/USART/USB硬件资源功能管脚名称外部设备管脚功能UART2(MUX)PA3RXD2PA2TXD2UART1PA10RXD1PA9TXD1SPI(SD卡)PB14SD0PB10SD1PB11SD2PB12SD3PB15SD_CMDPB13SD_CLKI2CPB6PB7SCLSDAUSBPA11USB_D-PA12USB_D+串行总线-SPI/I2C/USART/USB硬件资源功能
串行总线-SPI硬件资源串行总线-SPI硬件资源
串行总线-I2C硬件资源串行总线-I2C硬件资源
串行总线-USART1硬件资源串行总线-USART1硬件资源
串行总线-USART2硬件资源串行总线-USART2硬件资源
串行总线-USB硬件资源串行总线-USB硬件资源USB转串口驱动安装通过USB(CN2)接口供电选择“从列表或指定位置安装”CT117E使用方法USB转串口驱动安装CT117E使用方法CT117E使用方法
CooCoxforMDK驱动安装双击CoMDKPlugin-1.3.1
安装路径设置为Keil软件安装位置CT117E使用方法CooCoxforMDK驱动安装CT117E使用方法程序调试与下载单击Project菜单,单击“OptionsforTarget”
在Debug标签中选择CooCoxDebbugerCT117E使用方法程序调试与下载CT117E使用方法程序调试与下载单击Settings选项在Debug的Adapter下拉菜单中选择ColinkCT117E使用方法程序调试与下载CT117E使用方法程序调试与下载
FlashDownload选项中单击ADD
选择STM32中密度产品(STM32F10xMed-DensityFlash)CT117E使用方法程序调试与下载CT117E使用方法程序调试与下载单击Utilities标签
在下拉菜单中选择CooCoxDebuggerCT117E使用方法程序调试与下载CT117E程序设计基于STM32固件库的程序设计步骤(1)创建工程目录
相关文件拷贝
修改配置文件
创建工程,添加相关文件
设置路径
保存工程文件,进行程序调试CT117E程序设计基于STM32固件库的程序设计步骤(CT117E程序设计基于STM32固件库的程序设计步骤(2)创建工程目录及文件拷贝拷贝STM32固件库Example中的stm32f10x_it.c拷贝STM32固件库Example中的stm32f10x_it.hstm32f10x_conf.h根据产品Flash存储器大小,选择相应的启动代码,复制到所建文件夹中。CT117E程序设计基于STM32固件库的程序设计步骤(CT117E程序设计基于STM32固件库的程序设计步骤(3)修改头文件-stm32f10x.h定义STM32芯片的规模类型如果使用标准固件库,定义宏USE_STDPERIPH_DRIVERCT117E程序设计基于STM32固件库的程序设计步骤(CT117E程序设计基于STM32固件库的程序设计步骤(3)修改配置文件-stm32f10x_conf.hSTM32处理器外设资源头文件,可根据工程需求打开和关闭。CT117E程序设计基于STM32固件库的程序设计步骤(CT117E程序设计基于STM32固件库的程序设计步骤(3)修改应用文件-stm32f10x_it.c中断服务函数,根据程序设计要求,编写相关代码CT117E程序设计基于STM32固件库的程序设计步骤(基于STM32固件库的程序设计步骤(4)创建工程,添加相关文件CT117E程序设计添加启动代码.\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm文件system_stm32f10x.c必须添加.\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x更具程序设计需求,选择性添加驱动外设源文件。.\Libraries\STM32F10x_StdPeriph_Driver\src基于STM32固件库的程序设计步骤(4)CT117E程序CT117E程序设计基于STM32固件库的程序设计步骤(5)路径设置设置H文件路径:(1).\Libraries\STM32F10x_StdPeriph_Driver\inc(2).\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x(3).\include(包含stm32f10x_it.h、stm32f10x_conf.h以及其它用户自定义的头文件)CT117E程序设计基于STM32固件库的程序设计步骤(CT117E程序设计编写一个应用程序(1)main.c#include“stm32f10x.h”/*#include“stm32f10x_lib.h”*/
intmain(void){ RCC_Configuration();/*外设时钟使能*/ GPIO_Configuration();/*处理器IO引脚配置*/ NVIC_Configuration();/*中断控制器配置*/USART_Configuration();/*串口配置函数*/ …… Sys_Init();/*系统初始化*/ while(1) { …… } }CT117E程序设计编写一个应用程序(1)CT117E程序设计编写一个应用程序(2)stm32f10x_it.c#include“stm32f103x_it.h”
externunsignedcharRx;voidUSART1_IRQHandler(void)//串口中断服务函数{ if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET); { Rx=USART_ReceiveData(USART1); } USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清除中断标志位
}CT117E程序设计编写一个应用程序(2)CT117E程序设计
STM32外设模块介绍-GPIOIO引脚功能IO引脚的结构IO引脚编程方法IO引脚测试程序-LED控制IO引脚测试程序-Buzzer控制CT117E程序设计STM32外设模块介绍-GPIO
STM32IO引脚功能通用I/O单独的位设置或位清除外部中断/唤醒线复用功能(AF)和重映射GPIO锁定机制CT117E程序设计STM32IO引脚功能CT117E程序设计CT117E程序设计
STM32IO引脚结构(1)CT117E程序设计STM32IO引脚结构(1)CT117E程序设计
STM32IO引脚结构(2)CT117E程序设计STM32IO引脚结构(2)CT117E程序设计
STM32IO引脚编程方法使能相应引脚时钟源根据外设配置引脚工作模式
操作IO引脚输入输出CT117E程序设计STM32IO引脚编程方法CT117E程序设计//LED测试程序#include“stm32f10x.h”//头文件voidGPIO_Configuration(void);//函数声明voiddelay(u32t);//函数声明intmain(void){ unsignedchari; GPIO_Configuration();//GPIO引脚配置 while(1)//循环 { for(i=0;i<8;i++) { GPIO_Write(GPIOC,~(1<<(8+i)));//LED循环点亮
GPIO_SetBits(GPIOD,GPIO_Pin_2); GPIO_ResetBits(GPIOD,GPIO_Pin_2);//锁存器锁存 delay(500000);//延时 } }}CT117E程序设计//LED测试程序CT117E程序设计//Buzzer测试程序#include"stm32f10x.h"voidGPIO_Configuration(void);voiddelay(u32t);intmain(void){ GPIO_Configuration();//蜂鸣器引脚配置
while(1) { GPIO_SetBits(GPIOB,GPIO_Pin_4);//打开蜂鸣器 delay(3000000); GPIO_ResetBits(GPIOB,GPIO_Pin_4);//关闭蜂鸣器 delay(3000000); }}CT117E程序设计//Buzzer测试程序CT117E程序设计
STM32外设模块介绍-SysTickSysTick介绍SysTick编程方法
基于SysTick的毫秒延时演示程序基于SysTick的按键功能测试例程CT117E程序设计STM32外设模块介绍-SysTicCT117E程序设计SysTick介绍24位减法计数器,自动装载定时初值
计数频率为内核时钟SysTicks应用产生一个精准的延时函数
产生操作系统的时钟节拍CT117E程序设计SysTick介绍SysTick编程方法
SysTick配置函数(core_cm3.h):
static__INLINEuint32_tSysTick_Config(uint32_tticks)//例程
#include“stm32f10x.h”
intmain(void){ SysTick_Config(SystemCoreClock/1000);//配置Systick时钟配置、中断配置、重载值//重新载入值:SysTick->LOAD=(ticks&SYSTICK_MAXCOUNT)-1;//#denfineSYSTICK_MAXCOUNT((1<<24)–1)…… }CT117E程序设计SysTick编程方法CT117E程序设计基于SysTick的毫秒延时演示程序main.c#include“stm32f10x.h”voidGPIO_Configuration(void);intmain(void){ GPIO_Configuration();//GPIO配置Systick_Config(SystemCoreClock/1000);//SysTick配置……while(1);}stm32f10x_it.cvoidSysTick_Handler(void)//Systick中断服务函数{ TimingDelay_Decrement();
}
CT117E程序设计基于SysTick的毫秒延时演示程序CT117E程序设计CT117E程序设计基于SysTick的按键功能测试例程
按键区抖方法(硬件):RS触发器
滤波电容
按键去抖动(软件):软件延时CT117E程序设计基于SysTick的按键功能测试例程
STM32外设模块介绍-RTCSTM32RTC构成STM32RTC的编程方法RTC测试例程CT117E程序设计STM32外设模块介绍-RTCCT117E程序设计CT117E程序设计
STM32RTC的时钟源
LSI振荡器、LSE振荡器或HSE振荡器128分频STM32RTC构成(1)APB1接口部分RTC核心部分
预分频模块32位独立定时计数器CT117E程序设计STM32RTC的时钟源CT117E程序设计STM32RTC构成(2)CT117E程序设计STM32RTC构成(2)
STM32RTC的编程方法(1)
打开电源管理和备份寄存器时钟
使能RTC和备份寄存器的访问
选择时钟源使能中断
设置RTC预分频器fTR_CLK=fRTCCLK/(PRL[19:0]+1)fTR_CLK=fRTCCLK/(PRL[19:0]+1)
时钟源32.768KHz,预分频装载寄存器值为0x7FFFFCT117E程序设计STM32RTC的编程方法(1)CT117E程序设计
STM32RTC的编程方法(2)voidRTC_Configuration(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_RTCCLKSource_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程序设计STM32RTC的编程方法(2)CT117E程序设计
STM32RTC测试例程intmain(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程序设计STM32RTC测试例程CT117E程序设计
STM32USART结构STM32USART引脚配置STM32USART增强功能STM32USART硬件流控STM32USART的编程方法STM32
USART中断测试程序CT117E程序设计STM32USART结构CT117E程序设计
STM32
USART引脚配置(1)CT117E程序设计STM32USART引脚配置(1)CT117E程序设计
STM32
USART引脚配置(2)CT117E程序设计STM32USART引脚配置(2)CT117E程序设计
STM32
USART增强功能LIN模式USART同步模式USART单线半双工通信USART的智能卡功能USART的IrDA模式USART的DMA通信CT117E程序设计STM32USART增强功能CT117E程序设计
STM32
USART硬件流控CT117E程序设计STM32USART硬件流控CT117E程序设计
STM32
USART编程方法(1)使能串口及GPIO引脚时钟源
复位串口
串口波特率及其它配置
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 临床 一次性耗材管理 实操实训|手把手教学操作指南
- 临床 护理标准制定 实操实训|手把手教学操作指南
- 校园欺凌安全教育课件4
- 热爱劳动树美德动手实践长才干小学主题班会课件
- 市场营销活动策划与执行高效流程手册
- 远离子口安全意识护航学生平安成长小学主题班会课件
- 停电紧急供电保障电力运维人员预案
- 警觉交通安全,守护生命之花,五年级主题班会课件
- 企业发展战略评估与规划指南
- 销售订单处理流程优化建议反馈回复通知函8篇
- 2026年云南省中考语文试卷真题及答案详解(精校打印版)
- 雨课堂学堂在线学堂云《自然辩证法概论(北京航空航天)》单元测试考核答案
- APQC跨行业流程分类框架 (8.0 版)( 中文版-2026年4月)
- 哈尔滨工业大学强基校测面试真题
- GB/T 12009.3-2009塑料多亚甲基多苯基异氰酸酯第3部分:黏度的测定
- GA/T 1799-2021保安安全检查通用规范
- FZ/T 70010-2006针织物平方米干燥重量的测定
- 新标准大学英语综合教程2 单词
- 养老护理解决方案之商业计划书
- 【班海精品课件】人教版(新)八下-17.1 勾股定理 第一课时
- 2022年网络安全管理员四级考试题与答案
评论
0/150
提交评论