STM8串口收发(典型).doc_第1页
STM8串口收发(典型).doc_第2页
STM8串口收发(典型).doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

最近开始使用stm8s103k3单片机了。据说很好,确实不错。前几天已经试过了GPIO,Timer2,ADC的功能,都比较容易,唯独串口UART使用,破费周折,写出来,供大家借鉴。我使用的是stm8s103k3,32脚单片机,这个使用手册上说了UART1,UART2,UART3。但是引脚的功能图上只有UART1,并且你打开stm8s103k.h的头文件,里面也只有UART1寄存器的定义说明。所以我认为只有UART1。既然有这个功能,那就用吧,我以为直接可以连接到电脑的串口(COM1),就可以使用了,其实不可以。单片机即使写着提供UART通讯功能,也要连接MAX232转接芯片,我就在这里耽误了许多时间。1、使用stm8s103上的串口和计算机com口通许的硬件连接:2、软件设置 (1)发送数据配置1)编程UART_CR1的M位来定义字长。2)在UART_CR3中编程停止位的位数。3)按下列顺序编写波特率寄存器选择要求的波特率。 a)UART_BRR2 b)UART_BRR14)设置UART_CR2中的TEN位来使能发送5)把要发送的数据写进UART_DR寄存器main.c程序如下:#include stm8s103k.hvoid UART1_Init(void) UART1_CR2=0x00;/使发送禁用TEN=0; UART1_CR1=0x00;/设置M字长,8位数据位 UART1_CR3=0x00;/1位停止位 UART1_BRR2=0x00;/00-0d:9600(fcpu=fmaster=2MHz) UART1_BRR1=0x0d;/00-1a:4800; 01-34:2400 UART1_CR2=0x08;main() /fmaster=fcpu=2MHz CLK_ECKR=0x00; CLK_ICKR=0x01; CLK_CMSR=0xe1; CLK_SWR=0xe1; CLK_CKDIVR=0x18; UART1_Init(); while (1) unsigned char i; while(!(UART1_SR & 0x80);/发送寄存器数据是否转移完 UART1_CR2=0x00;/a处 UART1_DR=0xB6;/要发送的数据 UART1_CR2=0x08;/b处 while(UART1_SR & 0x40) =0);/发送是否完成上面的代码是我反复实验过的,如果不加a和b处代码,则接收的数据不稳定,比如发送5,接收到的数据的串口多次开闭,则接收的数据可能是0xB6,或0x67,或0x3B.(2)接收数据1)编程UART_CR1的M位来定义字长。2)在UART_CR3中编程停止位的位数。3)按下列顺序编写波特率寄存器选择要求的波特率。 a)UART_BRR2 b)UART_BRR14)设置UART_CR2中的REN位来使能接收5)读UART_DR寄存器 a)查询:查询SR中标志位RXNE (读数据寄存器非空) b)中断:需使能CR2中的RIEN(接收中断使能)标志位查询方式:初始化:void UART1_Init(void)UART1_CR1 = 0x00; /8bitUART1_CR3 = 0x00;/1 stop bitUART1_BRR2 = 0x01;UART1_BRR1 = 0x1A;/4800 baud rateUART1_CR2 = 0x04;/enable RENMain()函数:while (!(UART1_SR & 0x20);/Loop until the UART1 Receive Data Register is not emptyRxBuffer= UART1_DR; /Store the received byte in RxBuffer中断方式:初始化:void UART1_Init(void)UART1_CR1 = 0x00; /8bitUART1_CR3 = 0x00;/1 stop bitUART1_BRR2 = 0x01;UART1_BRR1 = 0x1A;/4800 baud rateUART1_CR2 = 0x24;/enable REN and RIENUART1接收中断函数:far interrupt void UART1_RX_IRQHandler (void) RxBuffer = UART1_DR; /Store the received byte in RxBuffer return;UART1接收中断向量(设置中断向量,即将中断服务程序的入口填写到中断向量表中)struct i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论