STM8模拟串口.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM8模拟串口

[STM8]基于STM8的模拟串口(一)下面是STM8的模拟串口实验例子实验工具:STM8S103FP6最小系统版, ST-linkV2, PL2303转串口模块步骤1、算出定时初值, STM8内部晶振为16M,采用8分频后震荡周期 =8/16 =0.5us,所以发送或接受以为数据的采样定时器初值应为48~52;下面为定时器初始化代码:void Tim2_Init(void){? ?? ???TIM2_DeInit();? ?? ? TIM2_TimeBaseInit(TIM2_PRESCALER_8, 48);? ?? ? TIM2_ClearFlag(TIM2_FLAG_UPDATE);? ?? ? TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);? ?? ???TIM2_Cmd(ENABLE);}步骤2、RXD和TXD初始化,RXD为上拉输入,TXD位推挽输出高电平#defineUart_RXD_Init()? ?? ?? ?? ?? ?? ?? ?GPIO_Init(GPIOD,GPIO_PIN_6,GPIO_MODE_IN_PU_NO_IT)#define Uart_RXD_Status()? ?? ?? ?? ?? ???GPIO_ReadInputPin(GPIOD,GPIO_PIN_6)#define Uart_TXD_Init()? ?? ?? ?? ?? ?? ?? ? GPIO_Init(GPIOD,GPIO_PIN_5,GPIO_MODE_OUT_PP_HIGH_FAST)#define Uart_TXD_Out_HIGH()? ?? ?? ?? ?GPIO_WriteHigh(GPIOD,GPIO_PIN_5)#define Uart_TXD_Out_LOW()? ?? ?? ?? ?GPIO_WriteLow(GPIOD,GPIO_PIN_5)步骤3、中断调用函数voidUart_Interrupt(void){? ?? ???uint8_ti;? ?? ???if(1 == flag_rxd_finish)? ?? ???{? ?? ?? ?? ?? ?flag_rxd_finish = 0;? ?? ?? ?? ?? ?flag_rxd_txd = 0;? ?? ?? ?? ?? ?for(i = 0;i TxXKCnt; i++)? ?? ?? ?? ?? ?{? ?? ?? ?? ?? ?? ?? ???UartTxBuff= UartRxBuff;}? ?? ???}? ?? ???if(1 == flag_rxd_txd)? ?? ?? ?// 为1,接收? ?? ???{? ?? ?? ?? ?? ? Uart_Rx_Byte();? ?? ???}? ?? ???else? ?? ?? ?? ?? ?? ?? // 为0,发送? ?? ???{? ?? ?? ?? ?? ? Uart_Tx_Byte();? ?? ???}}步骤4、接收函数static void Uart_Rx_Byte(void){? ?? ???static uint8_t RxBitNum;? ?? ???//接收位计数? ?? ???static uint8_t OverTime;? ?? ?? ?//接收超时计时器? ?? ???static uint8_t RxByteBuff;? ?? ??//一字节数据接收缓存? ?? ???if(1 == Uart_RXD_Status())? ?? ???{? ?? ?? ?? ?? ? OverTime++;? ?? ???}? ?? ???Else? ?? ???{? ?? ?? ?? ?? ? OverTime = 0;? ?? ???}? ?? ???if(OverTime 44)? ?? ???{? ?? ?? ?? ?? ? OverTime = 0;? ?? ?? ?? ?? ? RxByteIndex = 0;? ?? ?? ?? ?? ? RxBitNum = 0;? ?? ???}? ?? ???if((1 == Uart_RXD_Status()) (0 == RxBitNum))? ?? ???{? ?? ?? ?? ?? ? RxSampFreq = 0;? ?? ???}? ?? ???else? ?? ???{? ?? ?? ?? ?? ? RxSampFreq++;? ?? ???}? ?? ???if(1 == RxSampFreq)? ?? ???{? ?? ?? ?? ?? ? if(0 == RxBitNum)? ?? ?? ?? ?? ? {? ?? ?? ?? ?? ?? ?? ?? ?

文档评论(0)

2017ll + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档