一乐电子

一乐电子百科

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

快捷登录

手机号码,快捷登录

搜索
查看: 2738|回复: 11
收起左侧

[STM8/STM32] STM32库编程疑问

[复制链接]
发表于 2015-11-6 13:36 来自手机 | 显示全部楼层 |阅读模式
假设,我用STM32的时候,需要用OLED作为显示器件。使用STM32的SPI1与OLED连接。而OLED功能函数我都放在oled.c中。问题来了,oled.c要怎样才能使用在main.c中声明和初始化的SPI1的句柄hspi1?来自: iPhone客户端
发表于 2015-11-6 13:42 | 显示全部楼层
外部函数定义啊
 楼主| 发表于 2015-11-6 13:46 来自手机 | 显示全部楼层
luckroll 发表于 2015-11-6 13:42static/image/common/back.gif
外部函数定义啊...

main.c中定义外部函数?来自: iPhone客户端
发表于 2015-11-6 14:06 | 显示全部楼层
句柄这个词引用的好,高大上
发表于 2015-11-6 15:24 | 显示全部楼层
chjj0 发表于 2015-11-6 13:46
main.c中定义外部函数?

开放 main 的权限,但是不建议这样做,越权了
可以通过函数来操作变量,就是效率会低一点,但是好管理

发表于 2015-11-6 15:26 | 显示全部楼层
句柄?很好寄怎么在单片机里用句柄。。。。
发表于 2015-11-6 15:53 | 显示全部楼层
楼主肯定是先玩上位机的 然后现在想折腾单片机 所以才会有句柄的说法

言归正传:在oled.c里面这样定义 比如:  extern void SpiInit(unsigned char Mode) ;这样就可以调用了
发表于 2015-11-6 16:04 | 显示全部楼层
既然你的OLED是接在硬件SPI1上。
那SPI的初始化,读,写应该和 OLED.c 里的函数冲突啊。

23432.png

我以前写的STM8电子书工程。
hard_spi.c 里面是配置硬件SPI
spi_sd.c     调用hard_spi.c对SD卡初始化,读写
spi_flash.c  调用hard_spi.c对25XXX 初始化,读写.
发表于 2015-11-6 16:29 | 显示全部楼层
如果 hspi1 是main.c 中的全局变量而且没有 static 修饰, 在oled.c里使用 hspi1 变量之前加入语句 "extern HSPI hspi1;" 声明一下就可以使用了,放在 oled.h 里声明也可以(这里假设hspi1的数据类型是HSPI)
如果 hspi1 是main.c的局部变量,可以作为参数传递给 oled.c 中要使用hspi1的函数
 楼主| 发表于 2015-11-6 19:54 来自手机 | 显示全部楼层
官方文档真的是用handler这个词的。但我确实没去百度中文译法,想当然的用了句柄这词来自: iPhone客户端

本版积分规则

QQ|一淘宝店|手机版|商店|电子DIY套件|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2024-5-10 16:25 , Processed in 0.071660 second(s), 47 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表