您好,欢迎访问三七文档
目录第一章keiluVision4软件的安装-----------------错误!未定义书签。第二章工程文件夹的建立----------------------------------------------------1第三章串口----------------------------------------------------------------------5第四章按键----------------------------------------------------------------------7第五章SPI-----------------------------------------------------------------------9第六章LCD--------------------------------------------------------------------12第七章DMA-------------------------------------------------------------------14第八章GPIO口---------------------------------------------------------------19第一章keiluVision4软件的安装1.打开压缩包中的Keil→ARMKil4→mdk460。22.安装完毕打开uVision4,点击复制右上角的CID再打开压缩包中KEIL_Lic4点击Generate生成许可号5将许可号复制到LicenseManagement6,注册成功。第二章工程文件夹的建立1、从固件库里面拷贝Libraries到我们的工程目录下.2、再新建两个文件夹obj---存放工程生成的文件user---存放我们以后自己新建的.c.h文件.3、进入user目录新建两个文件夹inc---存放我们的.h文件src---存放我们的.c文件.4、去到固件库里面的project里面STM32F10x_StdPeriph_Template.5、新建工程文件STM32project.6、选择工程存放位置.7、选择CPU型号STM32F103ZE.8、是否选择KEIL带的启动文件.9、修改工程文件.10、修改文件夹名和新建文件夹StdDriver、user.11、添加文件.3个文件12、修改编译环境.13、建main.c文件.#includestm32f10x.hintmain(void){while(1){}}编译文件14、工程文件说明.模块化编程--------每一个模块独立建立.h---函数声明变量声明(声明的函数/变量可以被其它.c文件调用).c文件---函数的实现变量定义。第三章串口一、通用同步异步收发器USARTUniversalSynchronous/AsynchronousReceiver/Transmitter串口收发器可以配置为同步模式,也可以配置为异步模式但是一般使用的是异步模式,同步模式很少使用,大家有兴趣的话可以自己研究下也就是我们今天要讲的是通用异步收发器UARTUART:通用异步收发器1、串口:一个字节,一根数据线,数据一位一位发送并口:一个字节,8根数据线,字节的各个位同时发送2、同步:有时钟线,根据时钟线上的时钟脉冲,主从设备来决定自己是收数据还是发数据3、上面讲了怎么传输数据,还有一个主从机数据的传输方向问题了全双工:收发同时进行就是现在电话机手机线:3条:发TX收RX共地GND半双工(分时复用):收发同一时间只能有一个在进行对讲机线:2条:收发公用一条线共地单工:只能发/只能收打印机二、串口驱动程序设计,实现电脑与开发板的通信我们使用串口1---UART11、串口的初始化初始化引脚---PA9,PA10PA9----USART1_TX----推挽输出---2M9600115200PA10----USART1_RX----浮空输入---电平更加稳定初始化串口模块---设置数据帧和波特率,工作模式使能串口模块,使能发送,使能接收2、串口发送函数While(USART-SR&(17)==0);USART-DR=data;3、串口接收函数signedcharUSART1_receive(void){u8data;if((USART1-SR&(15))!=0)//判断数据寄存器有没有进来数据,1代表收到数据,0代表没有收到数据{data=USART1-DR;returndata;}return-1;}4、电脑串口助手与开发板的通信实现数据回显三、用printf()从串口输出microlib提供了一个有限的stdio子系统,它仅支持未缓冲的stdin、stdout和stderr。这样,即可使用printf()来显示应用程序中的诊断消息。要使用高级I/O函数,您必须提供自己实现的以下基本函数,以便与您自己的I/O设备配合使用。fputc()为所有输出函数实现此基本函数。例如,fprintf()、printf()、fwrite()、fputs()、puts()、putc()和putchar()。intfputc(intch,FILE*f){UART2_SendByte(ch);return(ch);}四、串口重映射五、配置其它串口第四章按键1、弄清按键所接引脚的配置属性按键有两种状态:按下去和没按的状态。比如说:CPU通过检测引脚是高电平还是低电平,来判断按键是否按下去那么引脚应该配置为什么属性?输入----浮空输入--1,检测外部信号2,引脚外面接有上拉电阻或下拉电阻按键引脚外面接有上拉电阻,选择浮空输入下拉输入--上拉输入--模拟输入--2、程序如何判断外部IO口的高低电平GPIOx-IDR&(1n);PA5,(GPIO5-IDR&(15))!=0;判断高电平:PB5(GPIOx-IDR&(15))!=0;(!!((GPIOx-IDR)&(1n))==1;((GPIOx-IDR&(1n))n)==1;判断低电平:(GPIOx-IDR&(1n))==0;(!!((GPIOx-IDR)&(1n))==0;((GPIOx-IDR&(1n))n)==0;3、设计程序实现按键,按一次灯亮,再按一次灯灭1、先把延时函数添加进去:添加delay_usdelay_ms函数到工程一定要:初始化延时函数delay_init(72);delay_ms();最大只能延时:1864ms2、消抖4、状态机的运用定义一个静态变量,专门用来标示按键的状态为什么要定义一个静态变量来表示按键的状态?5、位带操作像单片机一样操作引脚PAout(n);PAin(n);PBout(n);PBin(n);PXout(n);PXin(n);原理:Cortex-M3的内部存储空间有2个“位带区”,分别称为“SRAM位带区”和“外设存储位带区”,各自位于SRAM区和外设存储区各自最低的1MBit空间;并有对应的2个“位带别名区”,分别称为“SRAM位带别名区”和“外设存储位带别名区”,每个别名区大小为32MBit。“位带”技术将两个“位带区”的每一位分别映射带对应的“位带别名区”的一个“字”(即32位)的最低位上。这部分存储空间(32M)是通过映射技术“虚拟”出来的,STM32片内的这部分地址空间并没有物理存储介质存在。第五章SPI一、时序1)时钟频率(波特率)------发送或者接收一个位要多长时间我们M3最快18MSPI的输出时钟必须在从机的范围内看时序图里面的时钟高低电平的最小时间也就是找最小周期要去有时间特性的时序图找。如果找时钟频率找不到确定-------给最小tch---200nstcl—200nsT=400nsf=1/T------2.5M2)时钟相位和时钟极性时钟相位CPHA--------上升沿/下降沿0:数据采样从第一个时钟边沿开始;1:数据采样从第二个时钟边沿开始。通俗:就是上升沿采样数据还是下降沿采样数据串口靠时间来数据。同步通信--采样数据就是什么时候去拿数据时钟极性CPOL--------高低电平作用:决定第一个时钟边沿-----空闲的时候的电平时钟相位CPHA和时钟极性CPOL组合成多少种情况?答:4种时序模式1、空闲的时候时钟极性CPOL=0,时钟相位CPHA=0上升沿采样数据CPOL=0CPHA=0–空闲的时候时钟线SCK为低电平上升沿采样数据2、空闲的时候时钟极性CPOL=0,时钟相位CPHA=1下降沿采样数据CPOL=0CPHA=1–空闲的时候时钟线SCK为低电平下降沿采样数据3、空闲的时候时钟极性CPOL=1,时钟相位CPHA=0下降沿采样数据CPOL=1CPHA=0–空闲的时候时钟线SCK为高电平下降沿采样数据4、空闲的时候时钟极性CPOL=1,时钟相位CPHA=1上升沿采样数据CPOL=1CPHA=0–空闲的时候时钟线SCK为高电平上升沿采样数据时序里面时钟极性和相位,必须和从机的一样一般:CPOL=0CPHA=0CPOL=1CPHA=1只有空闲状态不同------时钟线要求空闲的时候是低电平那就选CPOL=0CPHA=0时钟线接下拉电阻时钟线要求空闲的时候是高电平那就选CPOL=1CPHA=1时钟线接上拉电阻二、配置SPI:1、初始化引脚2、选择好SPI的时序选择:时钟相位和极性00SPI_CR1时钟相位-----0位写0SPI2-CR1&=~(10);时钟极性-----1位写0波特率(最小的频率)位5—位3写1113、选择SPI的数据位宽8位----CR1---位11写0MSB先发----CR1----位7写04、设置好硬件SPI的工作模式(如果是软件管理-----M3里面的NSS脚就空出来,可以配置成其它功能使用)M3----主机(软件管理)---CR1—位9写1CR1—位8写1CR1—位2写1全双工----CR1---位15写0CR1---位10写0第六章LCD一、LCD的概述1、显示分辨率段码式显示和点阵式显示显示分辨率就是屏幕上用于显示的像素个数,分辨率160×128的意思是水平方向含有像素数为160个,垂直方向像素数128个。屏幕尺寸一样的情况下,分辨率越高,显示效果就越精细和细腻。分辨率:1024*768我们LCD:240*320=768002、像素颜色的表示:色彩深度像素的颜色由一个二进制数表示;二进制位数越多,表示的颜色的种类越多,颜色表现越细腻逼真LCD16021BPPbitperpixelLCD128641BPP8BPP-------一个点用8个位黑、灰、白色之间,有256个层次。16BPP-----假彩色16个位65536种RGB—565555RGB—56518BPP---66624BPP------888真彩色RGB232BPP3、TFT-LCDTFT(ThinFilmTransistor)是指薄膜晶体管,意即每个液晶像素点都是由集成在像素点后面的薄膜晶体管来驱动,从而可以做到高速度、高亮度、高对比度显示屏幕信息,是目前最好的LCD彩色显示设备之一。由于TFT-LCD是色彩表现力强,图像质量好,所以TFT-LCD已成为现在的主流LCD,是现在笔记本电脑和台式机上的主流显示设备。今天要讲的LCD就是TFT-LCD根据显示原理的不同,还有两种类型的LCD:STN-LCDTFD-LCD比如手机使用的显示屏有STN方式、TFD方式和TFT方式3种类型。其中图像质量最好的是TFT方式,笔记本电脑中所使用的显示屏大部分都是这种类型。但TFT虽然画面精美,耗电量却较大,因而对于手机而言,具有电池不耐用的缺点。STN方式虽然在图像质量方面最差,但是具有耗电量小、成本低的优点。TFD恰恰定位在TFT与STN的中间位置。图像质量虽然略逊于TFT,但耗电量少于TFT。4、LCD的背光因为液晶材料本身并不发光,所以在显示屏两边设有作为光源的灯管,而在液晶显示器的背面设有一块背光板(或均匀光
本文标题:王其平的实习报告
链接地址:https://www.777doc.com/doc-2222950 .html