回答

收藏

【赚周年币】技术帖Week2-Day1——LPC824 Breakout之八、SPI测试

#线上活动 #线上活动 3023 人阅读 | 0 人回复 | 2017-01-08

本帖最后由 toofree 于 2017-1-17 23:38 编辑

        【赚周年币】技术帖Week2-Day1——LPC824 Breakout之八、SPI测试

        本贴以标准“LPC824_Example_Code_Bundle_Keil_r1.0”库为模板,修改一下“Keil_Retarget.c”文件,来实现SPI总线测试。
        或者为了方便,可以用本人上一贴末尾发的附件压缩包为模板。
        【赚周年币】技术帖Week1-Day7——LPC824 Breakout之七、ADC LCD显示https://www.cirmall.com/bbs/forum ... 61990&fromuid=17147
        

        
        复制工程“Example_SPI0M_SPI1S”工程文件和源代码文件,改名为“Example_SPI0M_SPI1S_Modify”。修改后的工程如下图。
        


        两路SPI管脚映射需要做适当修改,修改后的部分见下图中选中部分。
        

        SPI0管脚改到P0_20、21、22、23,SPI1管脚改到P0_ 8、9、10、11。
        为什么要修改呢,因为本人比较懒,不想动接好的线。还记得之前帖子中我的LCD接到哪了吗,正是用了P0_24、25、26、27、28管脚。
        那SPI管脚为什么可以随意更改呢,这正是LPC82X系列的一个优点,有个叫开关矩阵的东东“LPC82x Switch matrix (SWM)”,这里先不介绍SWM,暂行略过。

        如工程名称所示,本贴正是要完成两路SPI0与SPI1之间的收发实验。需要4条外部连线,连接SPI0和SPI2的相应管脚,如下图。
        


        把文件“Example_SPI0M_SPI1S_Modify.c”中,所有printf中的“\n\r”,统统全部改成“\r\n”。官方默认库中这个“\n\r”让人很不爽,谁用谁知道,唉!

        顺便把“utilities_lib”库工程中的“\n\r”也全部改成“\r\n”,重新编译生成新的“utilities_lib.lib”文件。忍它不是一天两天了,不发飚当我的hello kitty呀。
        


        编译下载“Example_SPI0M_SPI1S_Modify.hex”到板子。
        


        打开串口终端,复位MCU,运行程序,进行测试。我去,什么情况,收发与预期不一致呀,一堆乱码。
        


        是不是波特太高了呢,修改一下试试。由2分频,改为5分频。
        


        重新编译,下载程序。打开串口终端,运行测试程序。一切正常,看来真有可能是波特率高了,或者是有干扰不稳定造成的。
        


        完美收工,关于SPI参数设置,参考打包程序中第75到92行。注释很明确,对照LPC824用户手册中关于SPI外设部分(205到226页),核对一下寄存器。用户手册之前上传过,也可从官网下载。
        

      
        依照惯例, 修改后工程文件打包附上。
        
LPC824_Example_Code_Bundle_Keil_r1.0(201701082258).rar (2.78 MB, 下载次数: 27)


关注下面的标签,发现更多相似文章

评分

参与人数 2 +23 收起 理由
EEboard爱板网 + 3 3周发帖养成记 奖励
loveeeboard + 20

查看全部评分

分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条