模拟串口模拟串口中断接收和发送

本文详细介绍了如何在STM32中使用模拟串口进行中断接收和发送数据。首先配置GPIO4为中断输入,GPIO5为输出,并初始化中断接收函数。中断接收代码实现了8位数据的接收,而发送数据函数则通过设置GPIO5的高低电平来发送字节。此外,还提供了一个完整的数据发送示例,包括校验和的计算。
摘要由CSDN通过智能技术生成

协议不多解释,直接上正题。

1、配置GPIO4为中断输入,GPIO5为输出。

2、中断接收代码:

#define RECVSIZE   50

#define SET_GPIO5_HIGH GPIO_SetPins(GPIO_PIN_5);
#define SET_GPIO5_LOW  GPIO_ResetPins(GPIO_PIN_5);
unsigned char receivedata[RECVSIZE]={0},datatemp, icount,recvflag=0,EndPosition=0;

void uart_init(void)   //配置GPIO4为中断输入
{
    WriteMem(REG_GPIO_CFG, ReadMem(REG_GPIO_CFG)|GPIO_PIN_4|GPIO_PIN_5);
    hal_set_gpio_output_outoftimer(GPIO_PIN_4, 0);
    hal_get_gpio_input_outoftimer(GPIO_PIN_4);
    gpio->irq.mode |= (GPIO_PIN_4);
    gpio->irq.polarity |= (GPIO_PIN_4);
    gpio->irq.enable |= (GPIO_PIN_4);
    NVIC_SetPriority(GPIO_IRQn, 4);
    NVIC_EnableIRQ(GPIO_IRQn);

    WriteMem(REG_GPIO_OEB, 0x00000000);
    WriteMem(REG_GPIO_OUT, ReadMem(REG_GPIO_OUT) | GPIO_PIN_5);

   SET_GPIO5_HIGH
}

//中断接收

void __a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值