




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一,设计要求本设计主要通过串口对LED灯的开闭和闪烁频率进行控制。串口发送相关命令字符串,stm32接收到字符串后返回相应的字符串,同时LED灯的开闭状态和闪烁频率根据收到的命令进行相应的变化。图1 RB-STM32F103开发板主要资源二,开发板简介本设计利用stm单片机型号是stm32f103zet6,其基本参数为:1-27分别为CPU:STM32F103ZET6,ARM Cortex-M3内核,512kB Flash,64KB RAM,LQFP 144脚封装32位RISC性能处理器32位ARM Cortex-M3结构优化72 MHz 运行频率/90MIPS(1.25DMIPS/MHz)硬件除法和单周期乘法快速可嵌套中断,612个时钟周期具有MPU保护设定访问规则1MBit *2 的SRAM(ISSI)128M字节NADN Flash(SAMSUNG)16M字节NOR Flash(SPANSION)100M/10M自适应以太网接口(DM9000A),IEEE802.3x流量控制的全双工模式,16KB SRAM,支持IP/ TCP / UDP校验生成和检查,可从EEPROM自动加载供应商ID和产品标识等优点16Mbit SPI串行Flash(SST25VF016B)板载 VS1003B 高性能MP3解码芯片,支持解码音乐格式包括MP3、WMA、WAV、MIDI、P-MIIDI,录音编码格式IMA ADPCM(单声道)。麦克风和线入(Line input)两种输入方式;支持MP3和WAV流;低功耗;具有内部锁相环时钟倍频器;高质量的立体声数模转换器(DAC);16位可调片内模数转换器(ADC);高质量的立体声耳塞驱动(30欧);单独的模拟、数字和IO供电电源;串行的数据和控制接口(SPI);外置扬声器,3.5mm接口立体声耳机插座可调电位器,输入模拟信号一个5向摇杆,一个Reset按钮、一个wakeup按钮、一个Tamper按键,一个自定义按钮电压表输入接口BNC输入端子,集成双通道CH1、CH2示波器电路4个自定义LEDRS232串行通信接口(DB9)MicroSD卡插槽(SD模式,不含SD卡),提供文件系统(FATFS)标准ARM JTAG 20 PIN仿真接口座(方便连接ST-LINK,JLINK,ULINK2等仿真器)USB HOST接口,嵌入式的主/从设备控制器(SL811HS),可以全速或低速与USB设备通信。LCD插槽,支持3.5寸320*240大屏幕26万色TFT-LCD模块,支持8/16位总线接口,镜面屏,超高清度,FSMC控制,还配备了ADS7843触摸控制器外接2K IIC接口 EEPROM(24LC02)RS485串行通信芯片(SP3485)CAN2.0A/B通信芯片(SN65VHD230)CAN2.0A/B通信接口,RS485串行通信接口8M外部石英晶振32.768KHz石英晶振,提供RTC时钟BOOT选择位,采用开关模式,让用户使用更方便74HC139地址解码器USB2.0全速DEVICE接口本开发板上固定有一个LED灯,其与控制芯片连接的引脚固化为端口G的引脚15。固化的开发板串口为串口1,由stm32的引脚图可知,串口1的固定引脚为:PA9(Tx)和PA10(Rx)。编程方式选用的是ST官方提供的库函数,精确延时函数为利用SysTick中断编写的毫秒级延时。三,设计内容LED灯开闭命令,其命令分别为“开启”和“关闭”。当电脑向stm32发出“开始”字符串后,电脑显示“LED灯的状态为:开启”,同时LED灯开始闪烁。当电脑向stm32发出“关闭”字符串后,电脑显示“LED灯的状态为:关闭”,同时LED熄灭。LED灯闪烁频率命令,其命令分别为“频率”、“完成”、“1”、“2”、“3”、其操作过程为:在LED处于关闭的状态下,电脑发出“频率”命令,stm32接受到命令后向电脑回复相应字符串,电脑收到并显示显示“LED灯的频率为:”,此时进入LED灯闪烁频率设定程序。在进入频率设定程序后,可设定LED的闪烁频率,本设计共设定了3中LED闪烁频率,分别用代号1-3表示,其值分别为5Hz、2.5Hz、1Hz,输入相应频率代号后发送给stm32,此时电脑收到并显示相应的LED闪烁频率值。最后向stm32发送“完成”命令,电脑会收到并显示字符串“频率设置完成”,此时LED频率设置完成,输入“开启”命令,LED就会根据设定的频率闪烁。stm32时钟配置命令。向stm32发送“时钟配置”命令,stm32会返回其各个时钟的频率值。本设计中所涉及的几种寄存器介绍及在使用中的介绍:端口配置高寄存器(GPIOx_CRH)偏移地址:04h复位值:4444 4444h 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16CNF151:0MODE151:0CNF141:0MODE141:0CNF131:0MODE131:0CNF121:0MODE121:0 rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0CNF111:0MODE111:0CNF101:0MODE101:0CNF91:0MODE91:0CNF81:0MODE81:0 rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw rw位31:30,27:26,23:22,19:18,15:14,11:10,7:6,3:2的功能为:CNFx1 0端口x配置位在输入模式(MODE1:0=00): 00:模拟输入模式 01:浮空输入模式(复位后的状态) 10:上拉/ 下拉输入模式 11:保留 在输出模式(MODE1:000): 00:通用推挽输出模式 01:通用开漏输出模式 10:复用功能推挽输出模式 11:复用功能开漏输出模式 位9:28,25:24,21:20,17:16,13:12,9:8,5:4,1:0的功能为:MODEx1:0端口x的模式位(x = 07) 00:输入模式( 复位后的状态) 01:输出模式,最大速度10MHz 10:输出模式,最大速度2MHz 11:输出模式,最大速度50MHz 在本设计中主要涉及到三个引脚GA9、GA10和GP15。其配置分别为:GPIOA_CRH=0x04090hGPIOG_CRH=0x030000000hAPB2 外设复位寄存器 (RCC_APB2RSTR) 偏移地址:0Ch复位值:00000000h位31:15 保留,始终读为0。 位14 USART1RST :USART1 复位 由软件置1或清零 0:无效 1:复位USART1 位13 保留,始终读为0。 位12 SPI1RST:SPI1复位 由软件置1或清零 0:无效 1:复位SPI1 位11 TIM1RST:TIM1复位 由软件置1或清零 0:无效 1:复位TIM1 位10 ADC2RST :ADC2复位 由软件置1或清零 0:无效 1:复位ADC2 位9 ADC1RST :ADC1复位 由软件置1或清零 0:无效 1:复位ADC1 位8:7 保留,始终读为0。 位6 IOPERST :IO口E复位 由软件置1或清零 0:无效 1:复位IO口E 位5 IOPDRST :IO口D复位 由软件置1或清零 0:无效 1:复位IO口D 位4 IOPCRST :IO口C复位 由软件置1或清零 0:无效 1:复位IO口C 位3 IOPBRST :IO口B复位 由软件置1或清零 0:无效 1:复位IO口B 位2 IOPARST :IO口A复位 由软件置1或清零 0:无效 1:复位IO口A 位1 保留,始终读为0。 位0 AFIORST:辅助功能IO复位 由软件置1或清零 0:无效 1:复位辅助功能本设计主要用到串口1,端口A和G,RCC_APB2RSTR=0x4104h端口位设置/ 复位寄存器(GPIOx_BSRR) (x=AE)地址偏移:10h 复位值:00000000h 位31:16 BRx:清除位x (x = 015) 这些位只能写入并只能以字(16 位)的形式操作。 0:对对应的ODRx位不产生影响 1:清除对应的ODRx位为0 注:如果同时设置了BSx 和BRx 的对应位,BSx 位起作用。 位15:0 BRx:设置位x (x = 015) 这些位只能写入并只能以字(16 位)的形式操作。 0:对对应的ODRx位不产生影响 1:设置对应的ODRx位为1 GP15置位时,该值为GPIOG_BSRR=0x8000hGP15复位时,该值为GPIOG_BSRR=0x80000000hUSART波特率寄存器USARTx_BRR每个串口都有一个自己独立的波特率寄存器USART_BRR,通过设置该寄存器达到配置不同波特率的目的。该寄存器的各位描述如下:图2 寄存器USART_BRR各位描述前面提到STM32的分数波特率概念,其实就是在这个寄存器里面体现的。最低4位用来存放小数部分DIV_Fraction,15:4这12位用来存放整数部分DIV_Mantissa。高16位未使用。这里波特率的计算通过如下公式计算:这里的fpclkx(x=1、2)是给外设的时钟(PCLK1用于串口2、3、4、5,PCLK2用于串口1),USARTDIV是一个无符号的定点数,它的值可以有串口的BRR寄存器值得到。而我们更关心的是如何从USARTDIV的值得到USART_BRR的值,因为一般我们知道的是波特率,和PCLKx的时钟,要求的就是USART_BRR的值。下面我们来介绍如何通过USARTDIV得到串口USART_BRR寄存器的值,假设我们的串口1要设置为9600的波特率,而PCLK2的时钟为72M。这样,我们根据上面的公式有:USARTDIV=72000000/9600*16=468.75那么得到:DIV_Fraction=16*0.75=12=0X0C; DIV_Mantissa= 468=0X1D4;这样,我们就得到了USART1-BRR的值为0X1D4C。只要设置串口1的BRR寄存器值为0X1D4C就可以得到9600的波特率。USART状态寄存器(USARTx_SR),串口的状态可以通过状态寄存器USART_SR读取。USART_SR的各位描述如下:图3 寄存器USART_SR各位描述RXNE(读数据寄存器非空),当该位被置1的时候,就是提示已经有数据被接收到了,并且可以读出来了。这时候我们要做的就是尽快去读取USART_DR,通过读USART_DR可以将该位清零,也可以向该位写0,直接清除。TC(发送完成),当该位被职位的时候,表示USART_DR内的数据已经被发送完成了。如果设置了这个位的中断,则会产生中断。该位也有两种清零方式:读USART_SR,写USART_DR。四 主程序流程图开始关闭LED灭LED亮闪烁频率5Hz闪烁频率2Hz闪烁频率1Hz初始化串口发送指令否是是五 程序清单int main(void) RCC_Configuration(); /系统时钟初始化 GPIO_Configuration(); /引脚初始化 NVIC_Configuration(); /中断配置初始化 SysTick_Init();/系统定时器初始化 USART_Configuration();/串口初始化 while(1) if(strcmp(RecOrder,开启)=0)/假如命令字符串为开启,表示开启led Delay_ms(1); SendString(LED灯的状态为:n开启n); /输出字符串xx ResetString(RecOrder);/清空字符串 Num=0;/清计数 State=1 ;/将状态标志位置1,开启LED else if(strcmp(RecOrder,频率)=0) /假如命令字符串为频率,表示进入频率设置程序 Delay_ms(1); SendString(LED灯的频率为:n); ResetString(RecOrder);/清空字符串 Num=0;/清计数 while(strcmp(RecOrder,完成)!=0)/假如命令字符串为完成,表示频率设置完成,跳出频率设定程序片段 if(strcmp(RecOrder,1)=0) Delay_ms(1); SendString(5Hzn); ResetString(RecOrder);/清空字符串 Num=0;/清计数 Jiange=100; else if(strcmp(RecOrder,2)=0) Delay_ms(1); SendString(2.5Hzn); ResetString(RecOrder);/清空字符串 Num=0;/清计数 Jiange=200; else if(strcmp(RecOrder,3)=0) Delay_ms(1); SendString(1Hzn); ResetString(RecOrder);/清空字符串 Num=0;/清计数 Jia
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 高中思想政治读本课件
- 高三地球在宇宙中课件
- 高三二轮光电效应课件
- 高一物理摩擦力课件
- 《离婚谈判策略解析:三策略离婚调解协议书》
- 物业服务合同中物业服务企业责任与义务界定
- 矿业股份及矿山开采权转让与综合开发管理协议
- 行政合同在数字经济时代的创新与实践
- 离婚双方财产分配与子女抚养责任移交协议模板
- 广告创意迭代代理执行合同
- 铁路作业人员安全课件
- 2025年医疗质量管理质控培训考核试题(含答案)
- 【轻质减负】第2课《中国人首次进入自己的空间站》情境化教学课件
- 心电图课件教学
- 浮吊安全知识培训课件
- 2025年边境巡逻机群无人机协同战术应用
- 后勤人员消防知识培训课件
- 中药饮片养护技术
- 八上必背文言文解析(全册)
- 2025年高等教育法学类自考-00859警察组织行为学历年参考题库含答案解析(5套典型考题)
- 2025年大队委选拔笔试题目及答案
评论
0/150
提交评论