【赚周年币】技术帖Week2-Day1——LPC824 Breakout之八、SPI测试
#线上活动
3023 人阅读
|
0 人回复
|
2017-01-08
TA的每日心情 | 开心 昨天 00:06 |
|---|
签到天数: 4274 天 连续签到: 3 天 [LV.Master]伴坛终老
司徒
- 积分
- 49119
    

|
|
本帖最后由 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页),核对一下寄存器。用户手册之前上传过,也可从官网下载。
依照惯例, 修改后工程文件打包附上。
|
评分
-
查看全部评分
|
|
|
|
|
|
|
|