你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 3715|回复: 2

[STM32F030] 【STM32F030-Discovery】基于mbed平台(IAR编译器)简单温度计

[复制链接]

10

主题

196

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-7-18
发表于 2014-12-16 22:16:16 | 显示全部楼层 |阅读模式
       刚得到一块STM32F030的Discovery板,和F4的Discovery相比,这块板子比较小巧,最近正在研究mbed,正巧看到mbed的库函数里支持STM32F030的Discovery板,就已测试了一下这块板子。紧接着上一章,讲到了mbed的SPI,主要使用了一下几个函数:
SPI Lcd_5110(SPI_MOSI, SPI_MISO, SPI_SCK); 启用了一个SPI,对应的管脚可以在PinNames.h这个文件里面找到(管脚分配都在这里面)
Lcd_5110.frequency(10000000);设置SPI的时钟(一目了然)
Lcd_5110.write(Data);
Lcd_5110.write(CommandByte);这是操作lcd5110的两个底层函数,发送命令和数据(都使用了mbed的spi写函数),非常简单
改完这两个底层函数之后就可以用在以前stm32f1系列操作lcd5110的驱动上,而且可移植性非常强(我已经将其直接copy到f072、l053,可以完美运行),这应该就是mbed的关键所在吧。
       尽然是温度计,温度传感器必不可少,正好手上有一块从TI申请的TMP275(精度相当高),这块温度传感器使用了I2C的接口,虽然说ST的I2C有BUG,但是我这次用mbed操作了一次,没有出现什么BUG,相当顺利,mbed的I2C主要使用下面几个函数:
I2C i2c(I2C_SDA, I2C_SCL);和上面的SPI一样,启用一个I2C(具体是I2C几, 可以根据引脚查)
Init_status= i2c.write(TMP275_WRITE_ADDR, data_write, 2, 0);很清楚,I2C的写函数,TMP275_WRITE_ADDR是器件地址,TMP275比较特殊,有一个读 地址,还有一个写地址(我把TMP275的A0、A1、A2全部拉倒地了,所以写地址是0x90,读地址是0x91,具体看TMP275的手册,在末尾会贴出来),data_write就是寄存器地址,2就是data_write的长度,0代表不重发,具体看库函数,注释的很清楚。
i2c.read(TMP275_READ_ADDR, data_read, 2, 0);    I2C的读函数,和上面一样,读出来的数据存在data_write中
           还有几句转换温度数据的式子(没考虑负温度,实际可以测量出来的)就不在这里详细介绍了!
           最后在调试过程中需要把浮点数转换成字符显示,使用了sprintf函数时,小数点总是莫名其妙的变成其他字符,最后果断放弃sprintf,找来以前的一个浮点转字符串的函数,上一张图吧,做的比较简陋(直接用杜邦线连的)“℃”没有取模直接用’C代替了...!
1418738803747.jpg
TMP275中文手册: tmp275.pdf (1.11 MB, 下载次数: 71)
<
回复

使用道具 举报

307

主题

3125

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-7-17
发表于 2014-12-17 08:57:02 | 显示全部楼层
点赞
回复 支持 反对

使用道具 举报

0

主题

5

回帖

0

蝴蝶豆

新手上路

最后登录
2019-3-27
发表于 2018-10-8 17:45:03 | 显示全部楼层
stm8就可以了吧  
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版