专注电子技术学习与研究
当前位置:单片机教程网 >> STM32 >> 浏览文章

STM8 串口功能使用简介

作者:huqin   来源:本站原创   点击数:  更新时间:2014年05月01日   【字体:

    说实话STM8确实用起来比较方便,虽然网上的资料不多,但是在各大论坛都可以找到自己想要的东西,下面说说我在使用时遇到的问题和应该注意的事项,,

 
  我在使用是用的是库函数。
 
1:先配置端口:
 
GPIO_Init(LEDS_PORT, ( TX ),  GPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(LEDS_PORT, ( RX ) , GPIO_MODE_IN_PU_NO_IT );
 
 
 
注意:在开始的时后程序写完后一直出现接收不到数据,在网上问了许多人,然后才发先原来是没有把,接收端口配置成接收状态,也有人说不用配置,直接用就接收到数据,但是我的实在实现不了。
 
 
 
2:函数初始化:
 
 
void Uart_Init(void)
{
    //UART1_DeInit();
    UART1_Init((u32) 9600, UART1_WORDLENGTH_8D, UART1_STOPBITS_1,
    UART1_PARITY_NO , UART1_SYNCMODE_CLOCK_DISABLE ,     UART1_MODE_TXRX_ENABLE);
    UART1_ITConfig(UART1_IT_RXNE_OR,ENABLE );
    UART1_Cmd(ENABLE );
 
}
 
注意:这个初始化的函数应在时钟函数初始化之后,因为Uart_Init():在调用时使用了关于时钟的一些参数,因为我们经常会在工程中切换函数,这样会对发送和接收数据造成影响。。
 
3 :接收 ,我么可以在主函数中接收,也可以在串口中断中接收数据。。
 
@far @interrupt void UART_RI (void)
 
{
disableInterrupts();
if(UART1_GetITStatus(UART1_IT_RXNE )!= RESET) 
    {
Res =UART1_ReceiveData8()-0x30;
 
}
 
 
//UART1_SendByte( keycounter);
UART1_SendByte(1);
UART1_SendByte(2);
UART1_SendByte(3);
UART1_SendByte(4);
//data_Analysis_1(); 
 
 
enableInterrupts();
}
 
 这是我在使用时遇到的一些问题
关闭窗口

相关文章