ARM-CORTEX-M3内核STM32F103VC的初次使用细节及心得记录

本文记录了使用ARM-Cortex-M3内核的STM32F103VC芯片时的一些关键点,包括中断口的下拉电阻、串口中断的清除、IO口配置、中断规划、外设时钟使能、DMA传输与中断同步问题,以及优化代码中的缓冲区清理策略。在实际操作中,作者提醒注意中断管理、DMA与串口交互的细节,以避免程序错误和混乱。
摘要由CSDN通过智能技术生成

1、芯片的中断口最好接一个下拉电阻,否则当中断管脚悬空时,管脚上的浮空电平很容易使芯片进入中断。

2、开启串口中断前可以通过读取数据寄存器来清除串口中断标志位。芯片手册上也是这么推荐的。如果直接通过清串口接收中断标志位,然后再开启串口接收中断,则串口出现异常,会不停进中断,但是不是由接收中断引起的。

3、使用外设时,同时要配置外设对应的IO口,使该IO口的状态符合外设数据传输的需求。如:作为中断,则配置为上拉输入或下拉输入。当该IO口作为中断输入时,同时也能通过读取数据寄存器来读取该IO线上的电平。

4、中断的使用及具体的操作必须慎之又慎。必须仔细规划,否则不仅程序显得混乱,而且不安全,极易产生错误。

5、若需要使用外设,首先在RCC里面使能该外设的时钟。然后配置该外设,若用到DMA,首先要使能DMA总线的时钟。若使用到中断,则使能外设的中断,并在NVIC中使能该中断。

6、采用DMA发送串口数据,当DMA传输完成标志位置位时,内存到串口的数据传输完成,但是串口中还有2个数据未发送,其中一个数据正在发送寄存器发送,另一个数据正在数据寄存器中。所以,不能通过DMA传输完成标志位来作为串口数据发送完成的依据。

7、有关清除缓冲区域的。在IAR编译器最高级优化的状态下

    for(temp_clean = 0; temp_clean < temp_baochang; temp_clean++)
    {

        packet_handler->mingling_buff[temp_clean] = 0;
    }

    for(temp_clean = temp_b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值