基于stm32f103c8t6.便携式环境检测仪
- 前言
-
- 关于常见的7PinSPI的OLED转成IIC
- Mirco_SD的SPI2通讯
- 上位机软件
前言
最近帮朋友做了个毕设,基于stm32f103c8t便携式环境检测仪主要用于检测温湿度,PM2.5和PM10浓度及进行LORA传输和本地数据存储。整体难度不大,但有几个小坎坷与大家分享。
关于常见的7PinSPI的OLED转成IIC
一开始直接买SPI的OLED,但是我有的代码是IIC于是想把SPI转成IIC,常见的7针SPI的OLED长以下: 其实上面写的很清楚,IIC需要电阻R1,R5,R6,R7,R8.以下是四线SPI个三线SPI大部分的电阻连接方式用作上拉电阻。因此,我们需要做的是将电阻连接起来R电阻转移到3R1,而对R短接8的两个引脚就行了。驱动代码不贴,需要在下面留言,我发给你。
Mirco_SD的SPI2通讯
当时选择的是128M的mirco sd卡用作本地数据存储SPI2.首先要注意的是SPI2和SPI1.时钟不一致。修改低速时钟和高速时钟时,最好采用以下分频句:
//SD卡初始化时,需要低速 void SD_SPI_SpeedLow(void) {
SPI2_SetSpeed(SPI_BaudRatePrescaler_128);//设置低速模式 } //SD卡正常工作时,可以高速工作 void SD_SPI_SpeedHigh(void) {
SPI2_SetSpeed(SPI_BaudRatePrescaler_2);//设置高速模式 }
这是第一个坑。事实上,现在回想起来,也是因为我没有仔细考虑。哈哈哈。第二个坑是上拉电阻的问题。这是我当时画的原理图 很简单,也是大错特错。网上有很多说法,有人说除了MOSI不需要拉电阻,其他需要拉电阻,也有人说不需要拉电阻,但最终应该适用于我自己的主控制,我使用stm32f103c8t6内部IO口拉能力有限,将CS,MOSI,SCLK,MISO四个IO口都使用了47K上拉电阻最终读取SD卡成功。上拉电阻的选择一般认为是10-100K两者都可以。
上位机软件
使用上位机软件VS2020windows窗体应用程序建造的地方没有太多问题。毕竟,这太麻烦了。我直接用我以前写的工程代码更改了它。如果需要,请留下电子邮件。我给你发。