版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深圳大学实验报告课程名称:硬件工程实践实验项目名称:串口实验;ADC实验学院:医学院指导教师:董磊报告人(组长):叶秋思学号:2012220034专业年级:生物医学工程2012班级:02报告人(组员):王凌峰学号:2012220042专业年级:医疗器械工程2012班级:01报告人(组员):卢健聪学号:2012220043专业年级:医疗器械工程2012班级:01实验时间:2014.112014.12实验报告提交时间:2015.1.4实验目的与要求:1 .STM32通过串口和上位机的对话,STM32在收到上位机发过来的字符串后,控制LED灯(DS0)亮灭;2 .用定时器6触发DAC1和DAC2输出
2、不同电压(不超过3.3V),用定时器3触发ADC1,使其两个通道分别采集并输出DAC1和DAC2输出的电压。例如:用定时器6触发,使DAC1输出1V电压,DAC2输出2V电压(PA4弓唧对应DAC1,PA5弓|脚对应DAC2);用定时器3触发ADC1,使其第7通道PA7和第8通道PB0分别采集PA4和PA5的输出电压。方法、步骤:硬件部分ALIENTEKMiniSTM32开发板CPUSTM32F103RCT6LQFP64FLASH:256KSRAM48KUSB数据线NOTEBOOK:ASUSA85VDOSWindows8.1Prox64软件部分编译环境:KEILMDK-ARMVersion5.
3、10STM32F10xStandardPeripheralsLibrary(标准外设库)STMISP下载器:MCUISP串口调试助手:XCOMV2.0文档部分参考文档:1STM3办完全手册-库函数版本_V3.02STM32中文参考手册_V10外部链接:STMicroelectronics)http:manual/CD00171190.pdf(ReferencemanualSTM32F101xx,STM32F102xx,STM32F103xx,STM32F105xxandSTM32F107xxadvancedARM?-based32-bitMCUs)/
4、wiki/STM32(维基百科,STM32)http:一、串口实验根据实验要求,在KEIL编译环境下编写程序,生成*HEX文件;通过STMISP下载器(MCUISP将程序下载到$丁乂3*发板中,运行程序;使用USB数据线连接STM32开发板上的USB_232接口,通过串口调试助手(XCOMV2.0发送指令字符串'1',使得STM3少发板上的指示灯DS0亮(红灯),发送指令字符串'0',使得STM32FF发板上的指示灯DS0熄灭;1 .安装及配置KEIL(MDK-ARMVersion5.10)软件;2 .参考STM3州完全手册-库函数版本_V3.0第三篇-第八章-
5、串口实验;2.1 STM32串口简介串口作为MCU的重要外部接口,同时也是软件开发重要的调试手段,其重要性不言而喻。现在基本上所有的MCU都会带有串口,STM32自然也不例外。串口设置的一般步骤可以总结为如下几个步骤:1)串口时钟使能,GPIO时钟使能2)串口复位3) GPIO端口模式设置4)串口参数初始化5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤)6)使能串口7)编写中断处理函数(具体参考STM3杂文参考手册_V10»第25章-通用同步异步收发器(USART)3.以“标准例程-V3.5库函数版本-ALIENTEKMINISTM32实验3用口实验”中的程序源码作为
6、参考(原程序实现如下功能:STM32通过串口和上位机的对话,STM32在收到上位机发过来的字符串后,原原本本的返回给上位机),打开程序源码目录下的工程文件(USART.uvproj),然后在KEIL编译环境下修改SYSTEMI录下的<usart.c>文件以及USERB录下的<main.c>文件;<usart.c>#include"led.h"#include"sys.h"#include"usart.h"/如果使用ucos,则包括下面的头文件即可.#ifSYSTEM_SUPPORT_UCOS#inc
7、lude"includes.h"/ucos使用#endif/本程序仅供学习使用,未经作者许可,不得用于其它任何用途/ALIENTEKSTM32开发板串口1初始化/正点原子ALIENTEK/技术论坛:/修改日期:2012/8/18版本:V1.5版权所有,盗版必究。/Copyright(C)广州市星翼电子科技有限公司2009-2019/Allrightsreserved*/V1.3修改说明/支持适应不同频率下的串口波特率设置.加入了对printf的支持增加了串口接收命令功能./修正了printf第一个字符丢失的bug/V1.4修改说明/1,修改串口初始化IO的bug/2,修改了
8、USART_RX_STA,使得串口最大接收字节数为2的14次方/3,增加了USART_REC_LEN,用于定义串口最大允许接收的字节数(不大于2的14次方)/4,修改了EN_USART1_RX的使能方式/V1.5修改说明/1,增加了对UCOSII的支持/加入以下代码,支持printf函数,而不需要选择useMicroLIB#if1#pragmaimport(_use_no_semihosting)/标准库需要的支持函数struct_FILEinthandle;FILE_stdout;/定义_sys_exit()以避免使用半主机模式_sys_exit(intx)x=x;/重定义fputc函数in
9、tfputc(intch,FILE*f)while(USART1->SR&0X40)=0);/循环发送,直到发送完毕USART1->DR=(u8)ch;returnch;#endif/*使用microLib的方法*/*intfputc(intch,FILE*f)USART_SendData(USART1,(uint8_t)ch);while(USART_GetFlagStatus(USART1,USART_FLAG_TC)=RESET)returnch;intGetKey(void)while(!(USART1->SR&USART_FLAG_RXNE);ret
10、urn(int)(USART1->DR&0x1FF);*/串口1中断服务程序/注意,读取USARTx->SR能避免莫名其妙的错误u8USART_RX_BUFUSART_REC_LEN;/接收缓冲,最大USART_REC_LEN个字节./接收状态/bit15,接收完成标志/bit14,接收到0x0d/bit130,接收到的有效字节数目u16USART_RX_STA=0;/接收状态标记初始化IO串口1/bound:波特率voiduart_init(u32bound)/GPIO端口设置GPIO_InitTypeDefGPIO_InitStructure;USART_InitTyp
11、eDefUSART_InitStructure;NVIC_InitTypeDefNVIC_InitStructure;ENABLE);RCCAPB2PeriphClockCmd(RCCAPB2PeriphUSART1|RCCAPB2PeriphGPIOA,/使能USART1,GPIOA时钟USART_DeInit(USART1);复位串口1/USART1_TXPA.9GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;/PA.9GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_
12、Mode=GPIO_Mode_AF_PP;GPIO_Init(GPIOA,&GPIO_InitStructure);初始化PA9/USART1_RXPA.10GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA,&GPIO_InitStructure);/初始化PA10/复用推挽输出浮空输入NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;NVIC_InitStructur
13、e.NVIC_IRQChannelPreemptionPriority=3; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure);根据指定的参数初始化抢占优先级3/子优先级3/IRQ通道使能VIC寄存器/UsartlNVIC配置/USART初始化设置USART_InitStructure.USART_BaudRate=bound;/一般设置为9600;USART_InitStructu
14、re.USART_WordLength=USART_WordLength_8b;/字长为8位数据格式USART_InitStructure.USART_StopBits=USART_StopBits_1;/一个停止位USART_InitStructure.USART_Parity=USART_Parity_No;/无奇偶校验位USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;/无硬件数据流控制USART_InitStructure.USART_Mode=USART_Mode_Rx|USART
15、_Mode_Tx;/收发模式USART_Init(USART1,&USART_InitStructure);/初始化串口USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);/开启中断USART_Cmd(USART1,ENABLE);/使能串口#ifEN_USART1_RX如果使能了接收voidUSART1_IRQHandler(void)串口1中断服务程序u8Res;#ifdefOS_TICKS_PER_SEC如果时钟节拍数定义了,说明要使用ucosII了.OSIntEnter();#endif/接收中断(接收到的数据必须if(USARTGetITS
16、tatus(USART1,USARTITRXNE)!=RESET)是0x0d0x0a结尾)Res=USART_ReceiveData(USART1);/(USART1->DR);/读取接收至用勺数据if(Res='1')LED0=0;elseif(Res='0')LED0=1;#ifdefOS_TICKS_PER_SEC如果时钟节拍数定义了,说明要使用ucosII了.OSIntExit();#endif#endif<main.c>#include"delay.h"#include"led.h"#inclu
17、de"sys.h"#include"usart.h"/ALIENTEKMiniSTM32开发板范例代码3/串口实验技术支持:/广州市星翼电子科技有限公司intmain(void)u8t;u8len;u16times=0;delay_init();/延时函数初始化NVIC_Configuration();设置中断优先级分组uart_init(9600);/串口初始化为9600LED_Init();初始化与LED连接的硬件接口while(1)4.编译生成*HEX文件;UD LJEMfTEK MjNSTM32 主的 平口妾蚯*LTEMTEK MWSTMMZ 史
18、猿M 半口无喻IIEE吃USART u叩问-|必,-e Efl5 .下载验证,将程序6 .运行串口调试助手 设置为默认值; 发送指令字符串 发送指令字符串 运行结果:(USART.heX下载到MiniSTM32开发板中,运行程序; XCOM波特率设置为9600,选择单条发送,其他选项1',验证MiniSTM32开发板上的指示灯 DS0是否亮起;0',验证MiniSTM32开发板上的指示灯 DS0是否熄灭;XjCOM'JEO熄灭粗看口 监” 口或#落T白皿子 口啪 加ADC验1 .用定时器6触发DAC1和DAC2俞出不同电压(不超过3.3V),用定时器3触发ADC1使其两
19、个通道分别采集并输出DAC侪口DAC2俞出的电压。例如:用定时器6触发,使DAC1输出1V电压,DAC2输出2V电压(PA4引脚对应DAC1PA5弓唧对应DAC2;用定时器3触发ADC1使其第7通道PA7和第8通道PB0分别采集PA4和PA5的输出电压。2 .参考STM3外完全手册-库函数版本_V3.0的第三篇-第二十章-ADC实验,第二十二章-DAC实验;以及STM32文参考手册_V10的第11章-模拟/数字转换(ADC),第12章-数字/模拟转换(DAC);2.1 STM32ADC1介STM32拥有1-3个ADC(STM32F101/102系列只有1个ADC),这些ADC可以独立使用,也可
20、以使用双重模式(提高采样率)。STM32的ADC是12位逐次逼近型的模拟数字转换器。它有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。STM32F103系列最少都拥有2个ADC,我们选择的STM32F103RCT包含有3个ADGSTM32的ADC最大的转换速率为1Mhz,也就是转换时间为1us(在ADCCLK=14MI样周期为1.5个ADC时钟下得到),不要让ADC的时钟超过14M,否则将导致结果准确度下降。STM
21、32将ADC的转换分为2个通道组:规则通道组和注入通道组。规则通道相当于你正常运行的程序,而注入通道呢,就相当于中断。在你程序正常执行的时候,中断是可以打断你的执行的。同这个类似,注入通道的转换可以打断规则通道的转换,在注入通道被转换完成之后,规则通道才得以继续转换。通过一个形象的例子可以说明:假如你在家里的院子内放了5个温度探头,室内放了3个温度探头;你需要时刻监视室外温度即可,但偶尔你想看看室内的温度;因此你可以使用规则通道组循环扫描室外的5个探头并显示AD转换结果,当你想看室内温度时,通过一个按钮启动注入转换组(3个室内探头)并暂时显示室内温度,当你放开这个按钮后,系统又会回到规则通道组
22、继续检测室外温度。从系统设计上,测量并显示室内温度的过程中断了测量并显示室外温度的过程,但程序设计上可以在初始化阶段分别设置好不同的转换组,系统运行中不必再变更循环转换的配置,从而达到两个任务互不干扰和快速切换的结果。可以设想一下,如果没有规则组和注入组的划分,当你按下按钮后,需要从新配置AD循环扫描的通道,然后在释放按钮后需再次配置AD循环扫描的通道。上面的例子因为速度较慢,不能完全体现这样区分(规则通道组和注入通道组)的好处,但在工业应用领域中有很多检测和监视探头需要较快地处理,这样对AD转换的分组将简化事件处理的程序并提高事件处理的速度。STM32其ADC的规则通道组最多包含16个转换,
23、而注入通道组最多包含4个通道。关于这两个通道组的详细介绍,请参考STM32中文参考手册_V10的第155页,第11章。STM32的ADC可以进行很多种不同的转换模式,这些模式在STM32中文参考手册_V10的第11章也都有详细介绍,我们这里就不在一一列举了。我们本章仅介绍如何使用规则通道的单次转换模式。STM32的ADC在单次转换模式下,只执行一次转换,该模式可以通过ADC_CR2寄存器的ADON位(只适用于规则通道)启动,也可以通过外部触发启动(适用于规则通道和注入通道),这是CONT位为0。以规则通道为例,一旦所选择的通道转换完成,转换结果将被存在ADC_DR寄存器中,EOC(转换结束)标
24、志将被置位,如果设置了EOCIE,则会产生中断。然后ADC将停止,直到下次启动。2.2 ADCi要特征12位分辨率转换结束、注入转换结束和发生模拟看门狗事件时产生中断单次和连续转换模式从通道0到通道n的自动扫描模式自校准带内嵌数据一致性的数据对齐采样间隔可以按通道分别编程规则转换和注入转换均有外部触发选项间断模式双重卞II式(带2个或以上ADC的器件)ADC转换时间:STM32F103xx增强型产品:时钟为56MHz时为1科s(时钟为72MHz为1.17Ws)STM32F101xx基本型产品:时钟为28MHz时为1科s(时钟为36MHz为1.55Ws)STM32F102xxUS训产品:时钟为4
25、8MHz时为1.2科sSTM32F105xx和STM32F107xx产品:时钟为56MHz时为1科s(时钟为72MHz为1.17s)ADC供电要求:2.4V到3.6VADC俞入范围:VREF-&VIN&VREF+规则通道转换期间有DMA青求产生。2.3 STM32的ADC通道与GPIO对应表ADC1ADC2ADC3通道0PA0PA0PA0通道1PA1PA1PA1通道2PA2PA2PA2通道3PA3PA3PA3通道4PA4PA4PF6通道5PA5PA5PF7通道6PA6PA6PF8通道7PA7PA7PF9通道8PB0PB0PF10通道9PB1PB1通道10PC0PC0PC0通道1
26、1PC1PC1PC1通道12PC2PC2PC2通道13PC3PC3PC3通道14PC4PC4通道15PC5PC5通道16r温度传感器通道17内部参照电压3.以工程实践作业中的“ ADC1 3通道”的程序源码为例验证 ADCI验;4.编译生成* HEX文件;蝇峥T-1iitLXbAwaiAjIktaJ营5r1PfcHjPg:%2JCilM>r4H*tfd国1|1$固"WriJm明£Mw»f口小Z出4.1郁tHir&Ca#w*T»"所|4UuWk.Tsij口3Hr罔11lip-手智耙骋揩町瑞素器皿拨中皿ni»udI耳机片Im
27、6eUJLI_b*TiluChi33»iK|acd-u|4A>2:_rh.i_hMJ_HBpLallui_£!jSCjrlnIJH.yrtvwAkrKusJCadUJI.LUUJIv+lI*卜山d.JII,.西«iije-.4>'小.H袅nlt:SU.AWJ&flKiiiNgdJttsPUttuSK:.iLtftU.kfluicurtEIMdidlfH*.Lrl1尊厘bl?4jm.£ftb-1M>Eli>ii?LL.*-(*-_i,ii*-n!i*1_Ttjii,-is.'-*-ni;十L.5|号1”hm包
28、:“不:一旧出1111士,呼、;心出断盛不颌0崛产-:jtmfI'Jmie.W;量Eu*1diQlrMih:,Jirfriiii*9ih=Rnr*+i31H,ri!IaT1二r.二话Jt-rb£LF:efwu:2S7zmleEK*一11.li44Uvcl>4ai3a-H«biH«PP$Mt*1-卷SfiwiRirhnasivl5.下载验证,将程序(stm32-ucosii_demo.hex)下载到MiniSTM32开发板中,运行程序;6.运行串口调试助手XCOM波特率设置为115200,其他选项设置为默认值;运行结果:1AverJnTtHperSen
29、:31.533S29CATtr_Ejcl:r4Voll:3.299194VXv«_InVdlt:1.217450V1Av"liLTinpsr5diL.3.53:52ggATer_EKtraVolt33991讽丫JLudr_InVclt.£:H53Y1xv*r_InT£“£忐£。33533529'CT&r_EKtraVQlt32S?1?4VAvW-InVolf1.2174061V1AverIjiTcnpcrScii:31.4B&BW91c.AT!tr_E5ctr<VDlt32?91?4VkvInVolt1.
30、21715971网各二UtlTthf台巴以.3】.533523"CA¥er_ExtraVolt32991讽丫仙打Jn心It.】.二了弓】OF1Xver_IftTenperSe:3i,4?4977'0ATefExtraVuLt产珈孑川杷匚;小闻网1AverIitTcnpcrScu:3L4632680ATftT_Ejctr*Voll:3299194VbeT_InVolf1.217E1O171Av各二口江加卜分名己北.31.404?6%C曲凹r二EHUrW<3£991淌Yk-i打JnYult.,.2:75'.0Y1Aver.rjtTenrer
31、S*TL,33,486*389'CArer_E*t:raVLt了枷泗杷广工避力】匕如川1Avcr_rjtTcnpcr£cn:3i|.119E400Cik.TKr_Extr*Volt32?911Vkvtr.InVolf1.217E6071Avey_IiLT己唯打名期.51.451557*0A<rer2E»trWol£3AvdjJInVclL.:.Z1735SK1Aver_IjtTenperSe:3i,428137'CArerxtraVolt3"W兴V杷丁瓜t.L咨4股1Av哈rInTcnpcrSciL:30.40h1716C.At*t
32、_Edctr*Vol1:32?91Vlv<T_InVolf1.2J75I01/1Mr二工几丁所以七期.3】C950Cif:C*绅二族出泌社上j.39134VJLvd:_InVdlL.:.117560K1Aves_IjtTe&rerSejt:3B.匏2驼匕ATerJxtraVQlti加用仙”-瓜t.Ld:虫尸丫1Av哈rInTtnptrStiL:3ll.393007CT*r_Ejcl:rtVDlt32?91jLv<T_InVolf12J7ELO1/1AverZliLTnperSL.31.404716pAFear_E3ftr4¥altJ.E9913AVkvtr_IiiVdlL.:.217560/1AverkTeftperSen:31.3812舶七Ter_Extr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中铁长江交通设计集团有限公司社会招聘2人笔试参考题库及答案解析
- 2026盐池中学招聘体育代课教师2人考试参考题库及答案解析
- 2026广东佛山市南海区桂城丽雅苑实验幼儿园招聘笔试模拟试题及答案解析
- 2026长航货运有限公司芜湖分公司招聘3人笔试模拟试题及答案解析
- 2026中铝(郑州)铝业公司招聘考试备考题库及答案解析
- 2026安徽省消防救援总队招聘16人考试备考题库及答案解析
- 2026青海康普生物科技股份有限公司招聘8人考试参考题库及答案解析
- 2026江西赣州翠谷幼儿园春季学期顶岗教师招聘2人考试参考试题及答案解析
- 成都武侯武三医院2026年2月临床医师招聘笔试备考题库及答案解析
- 2026甘肃鸿盛岩棉科技有限公司招聘12人笔试备考题库及答案解析
- 2026年永州职业技术学院高职单招职业适应性测试模拟试题带答案解析
- 2026春三年级下册第一单元1《古诗三首》 教学教学课件
- 《应急预案编制与演练》全套教学课件
- 海信集团AI面试求职者常见疑惑解答
- 销售润滑油合同范本
- 城镇燃气经营安全重大隐患判定标准试题(有答案)
- 钢铁是怎样炼成的-保尔·柯察金的成长历程与精神品格
- 2026年苏州卫生职业技术学院单招职业技能测试必刷测试卷及答案1套
- 《2025年剑桥商务英语(BEC)初级考试历年真题解析与预测试卷》
- 湖北省2025年普通高中学业水平合格性考试数学试题及答案
- 【MOOC】《现代世界警察》(江苏警官学院)期末考试慕课答案
评论
0/150
提交评论