STM32F0系列开发之串口的使用

本文介绍了如何在STM32F0系列芯片上进行串口开发,特别是利用串口接收空闲中断来提高效率,避免定时器检测超时。内容包括初始化串口、定义串口接收回调函数,以及展示了相关的源码文件myUart.h和myUart.c。
摘要由CSDN通过智能技术生成

写在前面

芯片型号:stm32f030c8t6
说明:便宜,用量大
要点说明:初始化、主函数调用串口接收callback、串口接收空闲中断,串口接收中断
这种API封装方式可以拓展到其他单片机,但需要注意单片机是否支持接收空闲中断
本文注意介绍空闲中断的应用,这样就不用在定时器中计时来检测接收超时中断了

一、应用

外部定义串口接收回调

当串口数据接收完成后,在该回调中处理串口数据即可

void Uart_recvCallBack(void *buf, int len)
{
   

}

外部初始化串口

myUart_initialize(115200,
					USART_WordLength_8b,
					USART_StopBits_1,
					USART_Parity_No,
					Uart_recvCallBack);

二、源码

myUart.h

#ifndef __myUart_H
#define	__myUart_H

#include "stm32f0xx.h"
#include "stm32f0xx_usart.h"
#include "stm32f0xx_gpio.h"
#include "stm32f0xx_rcc.h"
#include "stm32f0xx_misc.h"

#define USART_REC_LEN  			200  	//定义最大接收字节数

typedef void (*myUart_cb)(void *buf, int len);

void myUart_initialize(   uint32_t USART_BaudRate,
							uint32_t USART_WordLength,
							uint32_t USART_StopBits,
							uint32_t USART_Parity,
							myUart_cb cb);
void myUart_setBaudRate(uint32_t USART_BaudRate);
void myUart_sendByte(uint8_t byte);
void myUart_sendBytes(uint8_t *Buffer, uint32_t Length);
uint8_t myUart_recvByte(void)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值