- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32F103串口通信寄存器设置
STM32f103寄存器配置串口通信主程序接收数据,上位机串口发送的数据已回车键结束,单片机接之后将所有数据发回。#include stm32f10x_lib.h#include sys.h//#include ioshezhi_jb.hunsigned char res;//串口接受数据临时存储unsigned char enddd=0;//接受完成标志unsigned int len=0;//数据长度unsigned char shubiao[200];//数据存储表,限制长度为200字节unsigned int t; //通信数据操作for循环控制unsigned long i=0;int main(){ Stm32_Clock_Init();//系统时钟设置//io_init();//io时钟以及输入输出选项设置RCC-APB2ENR|=0x4000;//开启USART1时钟;RCC-APB2ENR|=0x0004;//开启GPIOA口时钟;GPIOA-CRH=0xfffff00f;//PA9、PA10IO设置清零GPIOA-CRH|=0x000008b0;//P9推挽输出,max50MHZ;P10上拉输入RCC-APB2RSTR|=0x4000;//串口复位RCC-APB2RSTR=0xbfff; //串口停止复位//USART1-BRR=0x1d4c;//主频72M时,波特率为9600USART1-BRR=0x0ea6;//主频36M时,波特率为9600//USART1-BRR=0x0139; //主频36M时,波特率为115200//USART1-CR1|=0x200c;//串口开,发送长度8字节,无校验,发送开,接收开;USART1-CR1|=0x340c;//串口开,发送长度9字节,偶校验,发送开,接收开;//(有效数据还是8位长度) while (1) {// shuru_init();//计算输入口的值 if(0x0020==((USART1-SR)0x0020))//如果接受到了一个字节的数据{ res=USART1-DR;//读取串口寄存器数据并存在临时位置res if(res!=0x0a){shubiao[len]=res;len++;} //如果该数据不是回车符的最后一个//字节0x0a,则存入数表 else{if(shubiao[len-1]==0x0d){enddd=1;len--;};};};//如果是0x0a,则判断前一个字符是不是0x0d,(回车符ASCII码为0x0a0d)//是的话则标记接受完成标志eddd并删掉已接受到的前一个字节的数据 if(enddd==1) //如果接受完成了 {for(t=0;tlen;t++)//依次发送数表中的数据{ USART1-DR=shubiao[t]; // while((USART1-SR0X40)==0); //等待当前字节数据发送结束}; enddd=0; for(t=0;t=len;t++){shubiao[t]=0;};//将数表中数据清零 len=0;}; i++;// if(i==20000){PC151;};//程序运行状态指示灯// if(i==40000){PC150;i=0;};};}寄存器注释:、时钟使能寄存器RCC-APB2ENR参考不完全手册P108页面需要开启的PORTA和USART1的时钟使能位,分别在 bit2 和 bit14,只要将这两位置 1 就可以使能 PORTA和USART1的时钟了。寄存器各位功能定义如下:、串口复位寄存器RCC-APB2RSTR参考不完全手册P124页面串口 1 的复位是通过配置APB2RSTR寄存器的第14位来实现的。APB2RSTR寄存器的各位描述如图8.1.1所示。串口1的复位设置位在APB2RSTR的第14位,通过向该位写1复位串口1,写0结束复位。其他串口的复位位在 APB1RSTR 里面。波特率设置寄存器USART1-BRR参考不完全手册P100页面STM32 的每个串口都有一个自己独立的波特率寄存器 USART_BRR,通过设置该寄存器就可以达到配置不同波特率的目的。USART_BRR 的最低 4 位(位[3:0])用来存放小数部分 DIV_Fraction,紧接着的 12 位(位[15:4])用来存放整数部分 DIV_Mantissa,最高 16 位未使用。计算方法为:首先计算DIV =主频/(波特率*16)比如主频为36MHZ,波特率要设置为115200时,则DIV(115200*16)=19.53125;整数部分DIV_Mantissa=19=0x13;
有哪些信誉好的足球投注网站
文档评论(0)