哈哈嘿嘿 发表于 2014-3-18 17:58:54

STM8L101F3串口通信

 本人只有学习过51单片机,现在开始学习STM8L,但是做完LED和按键试验后,参考网上STM8S的一些材料学习串口通信,但是总是不能成功,内心有点焦虑,希望那位大大给个STM8L101F3串口通信的简单例程,让我学习学习,谢谢!!

木头子 发表于 2014-3-18 20:32:55

回复:STM8L101F3串口通信

 UART2_DeInit();
  UART2_Init(600, UART2_WORDLENGTH_9D, UART2_STOPBITS_2, UART2_PARITY_EVEN, UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_TXRX_ENABLE);
  UART2_ITConfig(UART2_IT_RXNE, ENABLE);
  UART2_Cmd(ENABLE);
简单的一个初始化

哈哈嘿嘿 发表于 2014-3-19 08:46:18

回复:STM8L101F3串口通信

回复第 2 楼 于2014-03-18 20:32:55发表:
 UART2_DeInit();
  UART2_Init(600, UART2_WORDLENGTH_9D, UART2_STOPBITS_2, UART2_PARITY_EVEN, UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_TXRX_ENABLE);
  UART2_ITConfig(UART2_IT_RXNE, ENABLE);
  UART2_Cmd(ENABLE);
简单的一个初始化
 
我试过了,不可以啊,有没有完整的例程,STM8L101的
 

废鱼 发表于 2014-3-19 09:45:57

RE:STM8L101F3串口通信

你用的哪个串口?你把你的代码发出来看一下。

哈哈嘿嘿 发表于 2014-3-19 11:41:55

回复:STM8L101F3串口通信

回复第 4 楼 于2014-03-19 09:45:57发表:
你用的哪个串口?你把你的代码发出来看一下。
STM8L101不就一个串口吗?我用的USART_TX和USART_RX。
我用的IAR  程序是:
#include"iostm8l101f3.h"
void delay(int m)
{
  int i,j;
  if(m=255)
       t=0;
    DelayMS(100);             // 延时100MS
  }                       

用库函数的程序是改的风驰开发板8S的例程,就是将其中的寄存器和库函数改为8L的(见附件)
 

 

木头子 发表于 2014-3-19 16:30:20

回复:STM8L101F3串口通信

回复第 3 楼 于2014-03-19 08:46:18发表:
回复第 2 楼 于2014-03-18 20:32:55发表:
 UART2_DeInit();
  UART2_Init(600, UART2_WORDLENGTH_9D, UART2_STOPBITS_2, UART2_PARITY_EVEN, UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_TXRX_ENABLE);
  UART2_ITConfig(UART2_IT_RXNE, ENABLE);
  UART2_Cmd(ENABLE);
简单的一个初始化
 
我试过了,不可以啊,有没有完整的例程,STM8L101的
 

 

这个是初始化而已,
void Link_Serial(void)
{
  static bool SendFlag = FALSE;
  
   //接收外机数据
 
   if ( )
  {  gc.Switch.bit.ErrorComm = 0;
    for(u8 i=0;i= 10000 && gc.Switch.bit.OuterPower)     //接收超时
  {
    gc.Switch.bit.ErrorComm = 1;
  }
一个发送,一个接收,大概是这样子,这个只是我一个程序中一部分代码,我是用库的,不知对你能帮助到

废鱼 发表于 2014-3-19 16:55:00

RE:STM8L101F3串口通信

我看你并没有开启USART的时钟
CLK_PeripheralClockConfig(CLK_Peripheral_TypeDef CLK_Peripheral, FunctionalState NewState);

哈哈嘿嘿 发表于 2014-3-20 10:39:52

回复:STM8L101F3串口通信

回复第 6 楼 于2014-03-19 16:30:20发表:
回复第 3 楼 于2014-03-19 08:46:18发表:
回复第 2 楼 于2014-03-18 20:32:55发表:
 UART2_DeInit();
  UART2_Init(600, UART2_WORDLENGTH_9D, UART2_STOPBITS_2, UART2_PARITY_EVEN, UART2_SYNCMODE_CLOCK_DISABLE, UART2_MODE_TXRX_ENABLE);
  UART2_ITConfig(UART2_IT_RXNE, ENABLE);
  UART2_Cmd(ENABLE);
简单的一个初始化
 
我试过了,不可以啊,有没有完整的例程,STM8L101的
 

 

这个是初始化而已,
void Link_Serial(void)
{
  static bool SendFlag = FALSE;
  
   //接收外机数据
 
   if ( )
  {  gc.Switch.bit.ErrorComm = 0;
    for(u8 i=0;i= 10000 && gc.Switch.bit.OuterPower)     //接收超时
  {
    gc.Switch.bit.ErrorComm = 1;
  }
一个发送,一个接收,大概是这样子,这个只是我一个程序中一部分代码,我是用库的,不知对你能帮助到
 
你给的我有点看不懂,不过我还是要谢谢你,以后还望多多指教
 

哈哈嘿嘿 发表于 2014-3-20 10:41:01

回复:STM8L101F3串口通信

回复第 7 楼 于2014-03-19 16:55:00发表:
我看你并没有开启USART的时钟
CLK_PeripheralClockConfig(CLK_Peripheral_TypeDef CLK_Peripheral, FunctionalState NewState);
 
谢谢!
 

Allen-ming 发表于 2017-10-24 15:17:28

发111111111111111111111

hjmhunter 发表于 2017-10-25 14:39:55

我也是新手,试试直接对寄存器操作,先初始化,再发送数据试试
页: [1]
查看完整版本: STM8L101F3串口通信