zoukankan      html  css  js  c++  java
  • “不要抄代码!自己的代码也不要抄!”

    在 Adventure 位于深圳的电子设备组装厂(SZE)里,小朱狠狠的对自己说。

    他刚刚在调试 STM32F407VG 的 SPI 功能。就在昨天,他刚刚调试好了 STM32F407VG 的 USART1 的功能,让这块微控制器芯片可以和电脑主机通过串口通信(由此将来可以衍生出很多种通过电脑主机对其它电子设备进行集中控制的应用)。所以今天,小朱将 USART1 的部分代码直接拷贝到 SPI 功能函数里面,结果始终无法工作。

    “为什么呢?”就在小朱疑惑的时候,猛然间注意到了这样一段代码:

       1:  RCC_APB2PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);

    这里的“RCC_APB2PeriphClockCmd” 函数是开启 APB2 总线上外设时钟的命令,从 USART1 代码里面直接拷贝过来的,原来的代码是:“RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);” 小朱将“RCC_APB2Periph_USART1” 改成了“RCC_APB1Periph_SPI2” 就直接用了。

    程序也没报错。

    但是,SPI2 这个外设,在 STM32F407VG 上面,是挂在 APB1 总线上的啊,和 USART1 是不同的!所以,正确的写法应该是:

       1:  RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);

    image

    唉,这一天过的 Sad smile

  • 相关阅读:
    Java面试题及答案整理(持续更新)
    CentOS6.4-mini系统服务列表
    Linux内核编译,模块尺寸变大的解决办法
    Configuration Opennebula3.8 & 4.x Virtual Machines Contextualizing
    CentOS6.3上Opennebula 3.8 VLAN配置
    Ubuntu 12.04 LTS主机名、IP、DNS配置总结
    Linux su
    Git安装配置总结
    Linux CentOS添加163yum源
    Linux 内核编译 modules ehci-hcd, ohci-hcd, uhci-hcd not found
  • 原文地址:https://www.cnblogs.com/jonyzhu/p/3254384.html
Copyright © 2011-2022 走看看