Psoc学习笔记——Uart Rx接收中断

本文详细介绍了如何在项目中通过添加UART模块实现串口通信,并利用外部中断组件进行中断信号处理。从硬件模块搭建到程序设计,再到串口效果展示,提供了完整的实践步骤。特别强调了中断模式的选择与中断程序的编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.硬件模块搭建

对项目的*.cysch文件中添加UART(SCB mode)模块。
在这里插入图片描述

双击模块模型,并对其按如下设置,

  1. uart选择External模式,使用外部中断组件来获取中断信号
  2. 在PSoC Crestor右侧的System部件中选择 Interrupt,并将其更名为isr_uart
    在这里插入图片描述

在这里插入图片描述
中断模式选择为 电平触发模式 LEVEL

2.程序设计

  1. 在主函数中添加如下代码
int main(void)
{
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    LED_R_Write(1); //led灯关闭

    UART_1_Start();		//启动串口
    UART_1_UartPutString("hello Uart\r\n");	//串口发送字符串
    isr_uart_Start();	//启动中断模块
    
    CyGlobalIntEnable; /* Enable global interrupts. */
    for(;;)
    {
        /* Place your application code here. */
    }
}
  1. 按下图找到 isr 中断程序句柄函数
    在这里插入图片描述
CY_ISR(isr_uart_Interrupt)
{
    #ifdef isr_uart_INTERRUPT_INTERRUPT_CALLBACK
        isr_uart_Interrupt_InterruptCallback();
    #endif /* isr_uart_INTERRUPT_INTERRUPT_CALLBACK */ 
    /*  Place your Interrupt code here. */
    /* `#START isr_uart_Interrupt` */
    	//清除 RX_NOT_EMPTY 中断标志位
        UART_1_ClearRxInterruptSource(UART_1_INTR_RX_NOT_EMPTY);
        //将接收到的数据发回 回显
        UART_1_UartPutChar(UART_1_UartGetChar());
    /* `#END` */
}

3. 串口效果

在这里插入图片描述

后记

另外,用Uart内部[Internal]中断方式,即可不需要添加 Interrupt 组件。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kimiyang123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值