打印

通用的spi通信函数和串口通信函数,怎么写好些?

[复制链接]
2025|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
candysnape|  楼主 | 2016-1-7 08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,现在用的单片机要同时使用2路spi通信和4路串口通信。
想写一个通用点儿的底层函数,就是无论使用哪路SPI,都调用同一个SPI.h头文件,不知道大神们有什么好的经验或思路么?

现在想到的实现方式大概有三种:
1、通过宏编译实现。
    这条昨天试过了,好像思路有问题,总之没办法实现
2、SPI.h文件中根据不同的接口有不同的函数,如SPI0_init(); SPI2_INIT();等等这样
    缺点是调用起来比较复杂,而且后期如果更改接口,要把所有用到的函数都挑出来改一遍
3、SPI接口函数中加一个指向路数的参数。如SPI_init(0);
    缺点是所有相关的子函数中都要进行判断

能想到的基本就是这些,不知道论坛的大神有没有更好的思路能提点一下,多谢多谢啦~

相关帖子

沙发
dirtwillfly| | 2016-1-7 09:37 | 只看该作者
参考官方提供的一些库函数吧

使用特权

评论回复
板凳
dirtwillfly| | 2016-1-7 09:37 | 只看该作者
你用的什么单片机?

使用特权

评论回复
地板
candysnape|  楼主 | 2016-1-7 09:39 | 只看该作者
dirtwillfly 发表于 2016-1-7 09:37
你用的什么单片机?

msp430f5438A

使用特权

评论回复
5
dirtwillfly| | 2016-1-7 09:42 | 只看该作者

这个系列,ti有提供库函数的

使用特权

评论回复
6
dirtwillfly| | 2016-1-7 09:43 | 只看该作者
7
candysnape|  楼主 | 2016-1-7 10:04 | 只看该作者
dirtwillfly 发表于 2016-1-7 09:43
http://dev.ti.com/tirex/#/?link=MSPWare%2FLibraries%2FDriver%20Library%2FMSP430F5xx_6xx

谢谢大神~

使用特权

评论回复
8
candysnape|  楼主 | 2016-1-8 13:23 | 只看该作者
dirtwillfly 发表于 2016-1-7 09:43
http://dev.ti.com/tirex/#/?link=MSPWare%2FLibraries%2FDriver%20Library%2FMSP430F5xx_6xx

十分感谢大神,但是说实话真没太看懂,
昨天下午和今天上午看了好久才刚弄明白系统时钟怎么配,还是得多多学习呀

使用特权

评论回复
9
dirtwillfly| | 2016-1-8 13:50 | 只看该作者
candysnape 发表于 2016-1-8 13:23
十分感谢大神,但是说实话真没太看懂,
昨天下午和今天上午看了好久才刚弄明白系统时钟怎么配,还 ...

加油。有问题可以来论坛交流

使用特权

评论回复
10
candysnape|  楼主 | 2016-1-8 14:20 | 只看该作者
dirtwillfly 发表于 2016-1-8 13:50
加油。有问题可以来论坛交流

嗯呢,谢谢啦

使用特权

评论回复
11
Ryze| | 2016-1-8 16:23 | 只看该作者
想写一个通用点儿的底层函数,就是无论使用哪路SPI,都调用同一个SPI.h头文件

没理解啊,IO口不一样怎么通用

使用特权

评论回复
12
Snow7| | 2016-1-8 22:22 | 只看该作者
可以在官网上找例程参考

使用特权

评论回复
13
candysnape|  楼主 | 2016-1-11 11:17 | 只看该作者
Snow7 发表于 2016-1-8 22:22
可以在官网上找例程参考

恩恩 谢谢

使用特权

评论回复
14
candysnape|  楼主 | 2016-1-11 11:18 | 只看该作者
Ryze 发表于 2016-1-8 16:23
没理解啊,IO口不一样怎么通用

因为归根结底其实就是UCxCTL0这几个寄存器名称不一样,程序内容上区别不算太大。

使用特权

评论回复
15
dirtwillfly| | 2016-1-11 14:54 | 只看该作者
candysnape 发表于 2016-1-11 11:18
因为归根结底其实就是UCxCTL0这几个寄存器名称不一样,程序内容上区别不算太大。
...

对的

使用特权

评论回复
16
cemaj| | 2016-1-11 22:11 | 只看该作者
不同单片机不一样。

使用特权

评论回复
17
cemaj| | 2016-1-11 22:12 | 只看该作者
配置好了寄存器就可以了。

使用特权

评论回复
18
kinarethy| | 2016-1-18 19:39 | 只看该作者
可以参考stm32库函数设计,灵活运用结构体

使用特权

评论回复
19
Garen2| | 2016-1-19 22:18 | 只看该作者
晶振对应的引脚可能不一样怎么通用

使用特权

评论回复
20
smilingangel| | 2016-1-20 21:56 | 只看该作者
用的最多的还是串口通讯的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:阡

13

主题

948

帖子

4

粉丝