本实验要完成的内容是.doc

本实验要完成的内容是.doc

ID:28546387

大小:113.50 KB

页数:5页

时间:2018-12-11

本实验要完成的内容是.doc_第1页
本实验要完成的内容是.doc_第2页
本实验要完成的内容是.doc_第3页
本实验要完成的内容是.doc_第4页
本实验要完成的内容是.doc_第5页
资源描述:

《本实验要完成的内容是.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、本实验要完成的内容是:通过UART接口将分秒位显示在PC机上,并且通过键盘设置分秒位。应该看到1234567890123...效果。PA_9和PA_10分别作为输出和输入脚即TX1和RX1。如图是连接图:主函数如下://定义定时器寄存器地址#defineSysTick_CTRL(*(volatileunsignedlong*)(0xE000E010))#defineSysTick_LOAD(*(volatileunsignedlong*)(0xE000E014))//就是STRVR//定义时钟允许寄存器地址#defin

2、eRCC_APB2ENR(*(volatileunsignedlong*)(0x40021018))//定义GPIOA寄存器地址#defineGPIOA_CRH(*(volatileunsignedlong*)(0x40010804))//定义USART1寄存器地址#defineUSART1_BRR(*(volatileunsignedlong*)(0x40013808))#defineUSART1_CR1(*(volatileunsignedlong*)(0x4001380c))#defineUSART1_SR(*(

3、volatileunsignedlong*)(0x40013800))#defineUSART1_DR(*(volatileunsignedlong*)(0x40013804))#include//声明函数voidSysTick_Init(void);voidSysTick_Handler(void);voidUsart1_Init(void);voidTxd_Sec(void);voidRxd_Sec(void);intUsart1_Txd(intdata);intUsart1_Rxd(void);

4、intfputc(intch,FILE*f);//声明全局变量intsec=0,sec1=0,min=0,min1=0,num=0;//主函数intmain(void){SysTick_Init();//初始化系统定时器Usart1_Init();//初始化USART1while(1){SysTick_Handler();//定时处理Txd_Sec();Rxd_Sec();//发送个位(一秒一次)}}//系统定时器初始化子程序voidSysTick_Init(void){SysTick_LOAD=1000000;//1

5、s定时值(时钟源频率为8MHz/8),每记一次数是1ms,故1,000,000次为1sSysTick_CTRL=1;//启动定时器,SysTick_CTRL为控制寄存器}//定时处理子程序voidSysTick_Handler(void){if(SysTick_CTRL&0x10000)//1s时间到,SysTick_CTRL的16位为计数标志位,当systick计到0时,该位被置1,{if((++sec&0xf)>=0xa)sec+=6;//2-10进制调整if(sec>=0x60){sec=0;//60s时间到,复

6、位为0if((++min&0xf)>=0xa)min+=6;//2-10进制调整if(min>=0x60)min=0;}//60s时间到,复位为0}}//UART1初始化子程序voidUsart1_Init(void){RCC_APB2ENR

7、=0x4004;//开启USART1和GPIOA时钟,2位与14位分别是端口A和USART1的时钟使能位GPIOA_CRH&=0xffffff0f;GPIOA_CRH

8、=0x000000b0;//PA.09(TX1)复用推挽输出、仅对PA.09操作,未对PA.10操作,它是默认状

9、态,PA.10(RX1)浮空输入//GPIOA_CRH^=0x000000f0;//复位状态下效果和以上2条语句相同USART1_BRR=0x0045;//8000000/115200=69(0x45)设置波特率为115200USART1_CR1=0x200C;//UART允许、发送和接收允许,允许中断//(8位数据、无校验、1位停止)}//USART1发送子程序//入口参数:data-发送数据//出口参数:返回发送数据intUsart1_Txd(intdata){while(!(USART1_SR&0x80));//

10、等待TXE=1(发送数据寄存器TDR空,已经被转移到发送移位寄存器)return(USART1_DR=data);//发送并返回数据}//USART1接收子程序//出口参数:接收数据(接收成功)/0(接收不成功)intUsart1_Rxd(void){if(USART1_SR&0x20)//RXNE=1(接收数据寄存器RDR不空,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。