STM8固件库+IAR 之-UART3-设计应用_第1页
STM8固件库+IAR 之-UART3-设计应用_第2页
STM8固件库+IAR 之-UART3-设计应用_第3页
STM8固件库+IAR 之-UART3-设计应用_第4页
STM8固件库+IAR 之-UART3-设计应用_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

精品文档-下载后可编辑STM8固件库+IAR之--UART3-设计应用3:红外编码模式

4:智能卡模拟功能

以上功能并不是所有串口都支持,stm8多的是3个串口,配置简单,多说无益

本来想先写定时器1来着,可手头上正好有串口的程序,整理整理先贴上来呗~

首先到stm8s_conf.h把#define_UART3(1)打开,否则uart3不能用,重新编译一下静态库

贴main.c代码:

#includestm8s.h

/*========内部高速时钟初始化========*/

voidinit_hsiclk(void)

{

CLK_DeInit();//寄存器复位

CLK_HSICmd(ENABLE);//内部高速时钟使能

CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV2);//内部8分频2M

}

/*==========串口初始化===========*/

voidinit_uart3(void)

{

UART3_DeInit();//复位

UART3_Init(9600,UART3_WORDLENGTH_8D,UART3_STOPBITS_1,UART3_PARITY_NO,UART3_MODE_TXRX_ENABLE);//9600,8,1,0读写使能

UART3_Cmd(ENABLE);

}

/*========GPIO初始化========*/

voidinit_gpio(void)

{

GPIO_DeInit(GPIOD);//PD口复位

GPIO_Init(GPIOD,GPIO_PIN_2,GPIO_MODE_OUT_PP_LOW_SLOW);//LED2初始化推挽输出

}

/*========延时函数===========*/

voiddelay(u16n)

{

u16i=0;

while(n--)

{

for(i=0;i330;i++);

}

}

/*========主函数===========*/

voidmain(void)

{

init_hsiclk();

init_gpio();

init_uart3();

while(1)

{

if(UART3_ReceiveData8()==0xAA)//发送0xAA,则灯闪发0xBB

{

UART3_SendData8(0xBB);

GPIO_WriteReverse(GPIOD,GPIO_PIN_2);

delay(1000);

}

}

}

附:LIN简介

LIN协会创建于1998年末,初的发起人为五家汽车制造商,一家软件工具制造商以及一家半导体厂商。该协会将主要目的集中在定义一套开放的标准,该标准主要针对车辆中低成本的内部互联网络(LIN,localinterconnectnetworks),这些地方无论是带宽还是复杂性都不必要用到CAN网络。LIN标准包括了传输协议的定义、传输媒质、开发工具间的接口、以及和软件应用程序间的接口。LIN提升了系统结构的灵活性,并且无论从硬件还是软件角度而言,都为网络中的节点提供了相互操作性,并可预见获得更好的EMC(电磁兼容)特性。

LIN补充了当前的车辆内部多重网络,并且为实现车内网络的分级提供了条件,这可以有助于车辆获得更好的性能并降低成本。LIN协议致力于满足分布式系统中快速增长的对软件的复杂性、可实现性、可维护性所提出的要求,它将通过提供一系列高度自动化的工具链来满足这一要求。

LIN总线的主要特性为:

*单主站以及多从站概念;

*基于常用的UART/SCI硬件接口,以及相应的软件,或作为纯粹的状态机,从而保证较低的成本;

*从节点中无须石英或陶瓷振荡器就可以实现自同步;

*信号传输实体确定,在增强系统中可以计算信号的传播(propagation)时间;

*信号基于应用交互层。

LIN网络由一个主节点以及一个或多个从节点组成,媒体访问由主节点控制--从节点中不必有仲裁或冲突管理。可以保证差状态下的信号传输延迟时间。

LIN物理层

总线驱动/接收器的定义遵循ISO9141单线标准,并带有一些增强性能。总线为单线传输,与总线通过终端电阻由电池正极节点(VBAT)提供。总线收发器采用增强型的ISO9141实现标准。总线可以取两个互补的逻辑值:主控值其电压接近于接地端,代表逻辑值0,退让值其电压与电池电压接近,代表逻辑值1。

总线采用上拉电阻作为终端,主节点的上拉电阻为1kOhm,从节点的上拉电阻为30kOhm。电阻需串联一个二极管以防止由于本地电源泄漏对总线产生的干扰。从节点的终端电容通常值为CSlave=220pF,主节点的电容要更高以使整个总线的电容小于从节点的值。

由于采用单线媒质传输,的传输波特率被限定在20kbit/s以内。该值为从满足信号同步而不产生冲突的值,到为满足电磁兼容性要求而要达到的传输值之间的实验中间值。的传输波特率为1kbit/s--这有助于避免在实际中产生超时冲突。

LIN协议

通过LIN总线传输的实体为帧。一个报文帧由帧头以及回应(数据)部分组成。在一个激活的LIN网络中,通讯通常由主节点启动,主节点任务发送包含有同步间隙的报文头,同步字节以及报文标志符(ID)。一个从节点的任务通过接收并过滤标志符被激活,并启动回应报文的传送。回应中包含了1到8个字节的数据以及一个字节的校验码。

传输一帧所花费的总的时间是发送每个字节所用的时间,加上从节点的回应间隙,再加上传输每个字节的间隙时间(inter-bytespace)。字节间隙是指发送完前一个字节的停止位后到发送下一个字节的启动位之间的时间。

帧内部间隔(inter-framespace)是从上一帧发送完毕后到下一帧启动发送间的时间间隔。

帧的结构如图1所示。帧由帧间间隔以及接下来的4到11个字节域组成。

图1:帧结构

信号在帧的数据域中传送。多个信号可以打包在一个帧中传送,只要这些信号不彼此重叠即可。

每个信号只有一个明确的传输者,例如,通常由一簇(cluster)节点中的一个来写,0、1或多个节点订阅该信号。

LIN协议的特性是使用进度表(scheduletable)。进度表有助于保证总线不出现过载的情况,他们同样是保证信号定期传输的组件。

在一组LIN节点中只有主节点任务才可以启动通讯保证了行为的确定性。主节点有责任保证与操作模式相关的所有帧都必须分配了足够长的传输时间。

LIN应用

采用LIN可实现车内网络分级,从而成为车辆制造商提供更高的质量及更低成本的重要因素。它可以为工业领域的软件开发提供的实现方式:抽象及更好的组合能力。LIN可以简化很多现有的低端复合解决方案,并且可以降低车辆电子系统的开发、生产、服务及后勤成本。

采用配备LIN的轿车生产线正在快速增长,而下一代轿车雄心勃勃的计划也许是LIN成功的证明。简捷而完整的LIN规范包含了完整的网络概念,极高的自动化程度已经使L

温馨提示

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

评论

0/150

提交评论