关于HC32F460串口调试遇到的问题记录

项目场景:

前面说过,公司引进华大的芯片作为公司新产品开发的平台。这里记录下项目开发过程中遇到的一个问题。


问题描述:

在调试完ws2812后,需要调试显示板同主板的通讯功能。两个板子之间是通过USART串口通讯的,关于这usart功能的实现,供应商提供的demo都有,在这之前也调好了一个usart口作为调试串口使用。参考demo改好相应的引脚配置后,却发现怎么也调不通,一开始以为是硬件问题,换了个板子后,问题依然存在,无奈只能慢慢翻看芯片的用户手册。最后在介绍gpio章节中,看到了这么一段话
在这里插入图片描述
我们方案采用PB3和PB4复用为usart,但是从手册中我们可以了解到,这两个口默认被配置为JTAG调试口,因此再将这两个引脚复位为USART前,需要对FSEL寄存器相应位写0无效JTAG/SWD功能。


解决方案:

知道原因后,就很好解决问题了

PORT_DebugPortSetting(1<<2, Disable);
PORT_DebugPortSetting(1<<4, Disable);
/* Initialize USART IO */
PORT_SetFunc(LCD_USART_RX_PORT, LCD_USART_RX_PIN, LCD_USART_RX_FUNC, Disable);
PORT_SetFunc(LCD_USART_TX_PORT, LCD_USART_TX_PIN, LCD_USART_TX_FUNC, Disable);

在引脚复位前写FSEL寄存器无效JTAG/SWD功能,上电重启,USART通信OK.

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: hc32f460是一款高性能的32位微控制器,它支持串口DMA功能。串口DMA是一种通过直接内存访问(DMA)方式来传输数据的技术,可以大大提高串口通信的效率。 hc32f460的串口DMA功能通过将串口数据的传输交给DMA控制器来完成,减轻了CPU的负担。在使用串口DMA时,首先需要配置DMA控制器,包括设置DMA通道、传输数据的起始地址和长度等。然后,将数据写入串口发送缓冲区,并启动DMA传输。DMA控制器会自动根据配置的参数从内存中读取数据,并将数据直接发送到串口,无需CPU的干预。 串口DMA可以极大地提高数据传输的速度,尤其适用于大量数据的传输和高速通信的场景。相比于传统的CPU中断方式,串口DMA能够实现数据的无缝传输,提高了系统的响应速度和实时性。 hc32f460的串口DMA功能还具有灵活的配置选项,例如可以选择不同的DMA通道进行数据传输,还支持循环传输模式和多缓冲区传输,以满足不同的应用需求。 总之,hc32f460的串口DMA功能是一项强大且高效的数据传输技术,能够提升系统的性能和可靠性。通过 DMA 控制器和串口的协同工作,能够实现高速、实时的数据传输,广泛应用于各种通信和控制系统中。 ### 回答2: HC32F460是一款基于ARM Cortex-M4内核的高性能微控制器。它具有丰富的外设功能,包括多个串口接口和DMA控制器。串口DMA是指通过DMA控制器来管理串口数据的传输。 在HC32F460中,串口DMA的工作原理如下:首先,我们需要配置串口控制器的相关参数,包括波特率、数据位、停止位和校验位等。然后,我们通过编程的方式配置DMA控制器,以使其能够将串口数据的发送和接收与内存之间进行直接传输。 对于串口发送功能,当我们要发送一段数据时,首先将数据存储在内存中的发送缓冲区中,然后通过编程的方式触发DMA控制器开始传输。DMA控制器会自动从内存中读取数据,并通过串口控制器发送出去。在传输过程中,我们无需干预,可以继续进行其他的操作。 对于串口接收功能,当有数据到达时,串口控制器会将数据存储在接收缓冲区中。然后,我们再次通过编程的方式触发DMA控制器开始传输。DMA控制器会自动将数据从接收缓冲区读取到内存中,以供后续的处理使用。同样,在传输过程中我们无需干预。 通过使用串口DMA,我们可以实现高效的串口数据传输,提高系统的性能。它可以减少CPU的负载,降低数据传输的延迟。同时,由于采用了直接内存访问的方式,可以减少CPU与外设之间的数据拷贝,提高数据传输的速度。 总之,HC32F460串口DMA是一种高效的数据传输方式,通过使用DMA控制器来管理串口数据的传输,可以提高系统的性能和可靠性。 ### 回答3: HC32F460是一种高性能的32位MCU芯片,具有丰富的外设接口和强大的处理能力。其中,串口DMA是这款芯片上的一个功能模块,用于实现串口的数据传输。 串口DMA可以通过配置寄存器来进行初始化设置。首先需要配置串口的传输参数,例如波特率、数据位数、停止位等。然后设置DMA的初始化参数,包括数据的传输方向、传输大小、源地址和目的地址等。接下来,通过使能串口DMA功能,就可以开始进行数据传输。 串口DMA的工作原理是通过中断触发和DMA通道来实现数据的传输。当有数据到达串口时,串口DMA会产生一个中断请求,触发DMA通道进行数据的传输。DMA通道会自动从源地址读取数据,并将数据传输到目的地址。数据传输完成后,DMA通道会产生一个传输完成的中断,在此中断中可以进行相应的处理,例如发送一个完成信号给外部设备。 串口DMA的优点是能够大大提高数据传输的效率和可靠性。由于数据传输由DMA通道完成,可以减轻CPU的负担,提高系统的响应速度。同时,采用DMA传输数据,可以避免由于CPU繁忙而导致的数据丢失或错误。因此,串口DMA在需要高效、稳定传输大量数据的应用中非常有用。 总之,HC32F460的串口DMA是一种可靠高效的数据传输方式,通过合理配置和使用,可以实现高速稳定的串口通信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Top0_0lll

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

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

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

打赏作者

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

抵扣说明:

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

余额充值