历史上的今天

今天是:2024年09月01日(星期日)

正在发生

2020年09月01日 | stm8s开发(三) UART的使用:串口通信!

发布者:郑大大 来源: eefocus关键字:stm8s  UART  串口通信 手机看文章 扫描二维码
随时随地手机看文章

  串口通信是单片机学习的一个最基本、最重要的功能之一。串口通信可以间接的当做调试接口使用,实现单片机与电脑之间的通信。当然可以与一些模块(比如蓝牙、wifi)通信,也可以作为和其他单片机通信的工具。


  STM8S的通用异步收发器(UART)主要特性:

  ● 全双工的,异步通信

  ● 可编程数据字长度(8位或9位)

  ● 可配置的停止位-支持1或2个停止位


  一般的,我们使用串口通信主要是关心几点参数:波特率、停止位、奇偶校验位。


  其次就是如何发送、如何接收数据,这里介绍的使用阻塞式发送数据、中断方式接收数据。


  以下代码是初始化串口,参数为:115200 1停止位 无校验位

  void Init_UART1(void)

  {

  CLK_PCKENR1 |= 0X04; //使能USART1时钟

  UART1_CR1=0x00;

  UART1_CR2=0x00;

  UART1_CR3=0x00;

  // 必须先写BRR2

  // 例如对于波特率位115200时,分频系数=16000000/115200=139

  // 对应的十六进制数为008B,BBR1=08,BBR2=0B

  UART1_BRR2=0x0B;

  UART1_BRR1=0x08;

  UART1_CR2=0x2c;//允许接收,发送,开接收中断

  }


  波特率设置需要通过计算,STM8S的默认主频是16M,得到写入寄存器的数为139。注意,这里需要先写入BRR2再写入BRR1,且格式特殊:

  BRR1应夹在BRR2之间!(需要修改波特率需要好好理解)


  编程手册描述如下:

    

  阻塞式发送函数(发送一个字节)如下:

  void SendChar(u8 dat)

  {

  while((UART1_SR & 0x80)==0x00);

  UART1_DR = dat;

  }

  只需要将数据加载到UART1_DR寄存器里就算是OK。

  终端接收数据函数如下:

  //将收到的数据再发送出去

  #pragma vector= UART1_R_OR_vector//0x19

  __interrupt void UART1_R_OR_IRQHandler(void)

  {

  u8 res;

  res = UART1_DR;

  return;

  }


  使用中断需要声明中断函数入口,并且指定中断表序号(串口1接收中断向量为0x19):

  #pragma vector= UART1_R_OR_vector//0x19

  __interrupt void UART1_R_OR_IRQHandler(void)

  只要串口接收到一个字节的数据就会立即进入此函数,数据存放在UART1_DR寄存器中。


  注意:要使用中断这个功能需要在mian函数中加入开启中断语句:

  _RIM;


  附上stm8s在IAR环境下的项目工程,包括了SPI、IIC、PWM、AWU、USART、EEPROM等片上硬件的初始化代码。


  http://download.csdn.net/detail/devintt/9454188

关键字:stm8s  UART  串口通信 引用地址:stm8s开发(三) UART的使用:串口通信!

上一篇:关于我对IIC协议的一些理解
下一篇:STM8-利用TIM2的定时功能,实现灯每隔1S闪烁

推荐阅读

近日,国内主流电视厂商都陆续披露了2018年上半年业绩报告,相比于2017年的整体低迷,今年上半年整体有所回暖。 TCL集团半年报显示,上半年归属于上市公司股东的净利润为15.5亿元~16.5亿元,比上年同期上升50%—60%,集团累计实现液晶电视销量1351.0万台(含商用显示器),同比增长37.8%。其中,智能电视销量为938.3万台,同比增长53.3%。 康...
近日,印度研究人员宣布开发出一种可充电的铁离子电池,它以低碳钢为阳极,具备性价比高、可储存电量高等优势。相关研究成果近期发表在英国皇家化学会期刊《化学通讯》上。论文说,印度理工学院马德拉斯分院研究团队研发的这种铁离子电池,以低碳钢为阳极,五氧化二钒为阴极,电解液为含高氯酸铁的醚基电解液。研究显示,这种电池可进行150次循环充放电,...
“新基建”风口下,智慧交通行业成为关注焦点。如何借助信息化技术,打通人、车、路、网的数字闭环,助力政府实现高效的交通出行信息管理,将是交通智能化发展的未来方向。 中国智慧交通建设驶入快车道2020 年是智慧交通落地的关键年,伴随 5G 等技术的发展将会催生新一代智慧交通。智慧交通对应领域的投资与建设将会拉动上下游的市场需求,并为更多产...
新一代线控转向系统Space Drive 3 Add-ON可以很容易地集成到现有车辆架构中,已经达到较高的商业化成熟度舍弗勒力反馈方向盘(HWA)采用机电式执行器取代传统的方向盘和机械转向柱,为座舱布局开辟了新的设计可能智能线控一体化底盘:用于实现自动驾驶的可扩展车辆平台凭借智能线控一体化底盘等创新产品,舍弗勒正在不断加快在自动驾驶领域的发展。在20...

史海拾趣

问答坊 | AI 解惑

要成为一名嵌入式工程师,需要具备哪些技能和能力?

要成为一名嵌入式工程师,需要具备哪些技能和能力? 欢迎大家都来讨论讨论!…

查看全部问答∨

关于:wince4.2的SDK包,安装以后在evc环境下string定义出错!

inking... testgpioDlg.obj : error LNK2019: unresolved external symbol "void __cdecl std::_Xlen(void)" (?_Xlen@std@@YAXXZ) referenced in function "private: bool __cdecl std::basic_string<char,struct std::char_traits<char ...…

查看全部问答∨

Keil初次使用, 报错

各位大侠, 小弟初次使用keil, 用C做一个非常小的51系列单片机试验小程序, 程序如下: #include <reg52.h> #define uint unsigned int sbit gate1=P2^0;                       & ...…

查看全部问答∨

51自制遥控器出现问题(有代码)

利用AT89C51定时中断产生的载波频率达不到38K,只有12K左右,这是什么原因? 还有计数部分 endcount=223,产生9MS起始码,这是怎么计算的啊?按26us中断一次9MS应该是346啊? 例码如下: #include<reg52.h> static bit OP;   & ...…

查看全部问答∨

如何在IAR5.30上使用STM32的v3.0.0固件库进行应用开发

这个文档虽然是按照固件库V3.0.0介绍的,但同样适合于固件库V3.1.0版本。 请下载附件,在解压缩后,点击文件Using_STM32_Firmware_Library(3.0.0)_On_IAR_EWARM_v5.30.pps观看。 Using_STM32_Firmware_Library(3.0.0)_On_IAR ...…

查看全部问答∨

【TI技术文章】:KeyStone 多核SoC工具套件:单个平台满足所有需求

过去,实施和部署多核片上系统 (SoC) 器件的一大挑战一直都是为编程和调试这些平台提供适当的工具。开发人员要充分发挥多核性能优势,就必须进行高效率分区,并在这些核上运行高质量软件。TI 支持 KeyStone 扩展的 Code Composer StudioTM (CCStudi ...…

查看全部问答∨

做键盘的时候430的中断为什么不受控制

我现在用MSP430G2553做键盘实验,但是老是不成功,我还没按键盘,总是直接级进中断了。用的是中断的方法做的。由于我的4*4键盘坏了,所以我自己在面包板上面搭了一个只能有4个按键的键盘,但是作用完全一样,因为我用查询的方式写的代码已经验证成 ...…

查看全部问答∨

c2000 launchpad调试出现的问题,你遇到了吗?

大侠们 调试发现c2000 launchpad执行以下语句有如下问题,跪求解释, GpioDataRegs.GPADAT.bit.GPIO0 = 0; GpioDataRegs.GPADAT.bit.GPIO1 = 0; GpioDataRegs.GPADAT.bit.GPIO2 = 0; GpioDataRegs.GPADAT.bit.GPIO3 = 0; 四条语句对应四个 ...…

查看全部问答∨

如何往MSP430G2553芯片中下载程序?

如何往MSP430G2553芯片中下载程序?电路是如何设计的?把哪几个引脚引出来?? …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved