历史上的今天
返回首页

历史上的今天

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

2021年09月15日 | STM8S003F3 uart的使用

2021-09-15 来源:eefocus

uart的使用这里我整理一下,方便我后续使用


bsp_uart1.h


#ifndef _BSP_UART1_H_

#define _BSP_UART1_H_

 

 

#include "stm8s.h"

#include "stm8s_clk.h"

 

 

void USART_Configuration(void);   //串口配置函数

void UART_send_string(uint8_t *Buffer);//发送一个字符串函数

#endif /* _BSP_UART_H_ */

bsp_uart1.c


void USART_Configuration(void)//串口初始化函数

{  

    UART1_DeInit(); //清除之前的串口配置

    UART1_Init((u32)115200, UART1_WORDLENGTH_8D, UART1_STOPBITS_1,

    UART1_PARITY_NO , UART1_SYNCMODE_CLOCK_DISABLE , UART1_MODE_TXRX_ENABLE);

    //串口配置:波特率115200,字节数8,1个停止位,无奇偶效验位,非同步模式,允许接受和发送  

    UART1_ITConfig(UART1_IT_RXNE_OR, ENABLE);

    UART1_Cmd(ENABLE );  //启用串口

}

 

void UART_send_string(uint8_t *Buffer) //发送一个字符

{

    uint8_t *String;

    String=Buffer;

  while(*String!='')

    {

        UART1_SendData8(*String);

        while (UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET);

    String++;

    }

    UART1_SendData8(0x0d);

    while (UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET);

    UART1_SendData8(0x0a);

    while (UART1_GetFlagStatus(UART1_FLAG_TXE)==RESET);

}

中断处理函数中,代码如下,这里实现的是收到的数据再发出,可根据自己的实际情况来做


stm8_it.c


INTERRUPT_HANDLER(UART1_RX_IRQHandler, 18)

{

    /* In order to detect unexpected events during development,

       it is recommended to set a breakpoint on the following instruction.

    */

 

    if(UART1_GetITStatus(UART1_IT_RXNE) != RESET)        //检查指定的UART1中断是否发生。 

    {

        UART1_SendData8(UART1_ReceiveData8());             //将接收的数据再用串口发送出去

        UART1_ClearITPendingBit(UART1_IT_RXNE);            //清除UART1挂起标志

     }

}

推荐阅读

史海拾趣

问答坊 | AI 解惑

求助强人!!有做过复合频率信号频率计的帮个忙!!

本帖最后由 paulhyde 于 2014-9-15 09:19 编辑 一、任务 测量两个正弦信号的叠加信号,其中,x1是主信号,幅值为 V(偏置为0V),频率为:20-20kHz;x2是次要信号,幅值为主信号的1/4-1/6,频率为:20-20kHz;二、要求 1.基本要求 (1)利用两个 ...…

查看全部问答>

五一快到了!发段汇编程序的问题给大家爽爽!

哈哈!我骗大家进来的,没什么爽的 问题是这样的:在PXA270上我跑这段程序:入口地址选为0X0(即NORFLASH的地址) xlli_GPIOREGS_PA_BASE EQU 0x40e00000 xlli_GAFR0_L_offset   EQU 0x00000054 xlli_GPDR0_offset     ...…

查看全部问答>

程序效率的问题

我使用.Net写的一个程序,里面有很多自定义控件,和一些用户控件,程序启动很慢,至少一分钟,希望各位给一些意见 先谢谢大家了…

查看全部问答>

低价转让友善之臂QQ2440V3开发板+LCD3.5液晶屏

具体请看taobao上的介绍 http://auction1.taobao.com/auction/item_detail-0db2-5a0abc7b0e70e1f7ae53ffad3582dfc4.jhtml 配件清单: 1) S3C2440核心板一片,配置64MB NAND FLASH和64MB SDRAM 2) S3C2440开发板底板一片 3) 直连九针串口线一条 ...…

查看全部问答>

求2410的cs8900的vxworks的驱动,有重谢。

求2410的cs8900的vxworks的驱动,有重谢。 cumedl@gmail.com,请联系。…

查看全部问答>

'CHtmlView' : base class undefined

我在evc下pocketPC模拟器,在一个窗口上要显示网页内容,使用了CHtmlCtrl类 http://dev.yesky.com/128/2272128_1.shtml 这个是国外某达人写的。 我在stdafx.h中已经加了#include \"afxhtml.h\",但是编译后提示我 \'CHtmlView\' : base class u ...…

查看全部问答>

AVR单片机c语言编程风格

AVR单片机c语言编程风格…

查看全部问答>

F149内部AD的电压问题

我今天用一个探测火源的模块去接F149的内部AD,我用3.3V给火焰传感器模块供电,输出脚悬空的时候我测输出脚是0到3V之间在变化(就是当没有火源或者火源超过探测范围的时候是3V),但我接上F149的AD的输入脚之后本来的3V输出就立即衰减为1.7V了。然 ...…

查看全部问答>

跪求大神给个G2553连接DHT11的完整程序

我想用串口调试助手检测DHT11测到的数据,无奈水平太菜,所以跪求大神们帮助。…

查看全部问答>

Solder Mask和Solder Mask的区别和解释

Solder Mask就是阻焊层,所有需要焊接的焊盘,铜皮需要的。paste Mask是SMD钢网层,对于需要汇流焊的焊盘的。回流焊的工艺过程是,刷锡膏,贴片,然后过回流焊机。Solder Mask是制造PCB的要求,Paste Mask是PCB组装的要求。 Solder Mask一般比焊盘 ...…

查看全部问答>