Zeruns's Blog - VSCode
type: channel
link: https://blog.zeruns.com/tag/VSCode/
items: 基于STM32F1的0.96寸OLED显示屏驱动程序，支持硬件/软件I2C
items: 使用VSCode代替Keil实现STM32和51单片机的开发

基于STM32F1的0.96寸OLED显示屏驱动程序，支持硬件/软件I2C
type: item
date: 2024-02-26T00:17:00+08:00
description: AI摘要 介绍了基于STM32F1的0.96寸OLED显示屏驱动程序，支持硬件/软件I2C，可显示多种内容并绘图。 此内容根据文章生成，仅用于文章内容的解释与总结 基于STM32F103的0.96寸OLED显示屏驱动程序（4针脚I2C接口），支持硬件IIC/软件IIC。这款驱动程序比较完善，可以实现 英文、整数、浮点数、汉字、图像、二进制数、十六进制数 等内容显示，可以画点、直线、矩形、圆、椭圆、三角形等，支持多种字体，差不多相当于一个简易版图形库了。该程序是基于江协科技的代码二次修改的，原版程序只支持软件I2C，我修改后支持硬件I2C，也可以修改宏定义改成使用软件I2C。程序是使用ST标准库写的。测试硬件为STM32F103C8T6和AIR32F103CBT6，在这两款单片机上都测试过能跑，其中使用硬件I2C时STM32通信速率最高可以跑到1.3Mbit/s，AIR32最高只能跑600kbit/s。关于OLED的驱动原理，以及驱动程序的使用教程可以看江协科技的视频：https://url.zeruns.com/L7j6ySTM32使用硬件I2C读取SHTC3温湿度传感器：https://blog.zeruns.com/archives/692.html移植好U8g2图形库的STM32F407标准库工程模板：https://blog.zeruns.com/archives/722.html电子/单片机技术交流群：2169025065效果图I2C协议简介I2C 通讯协议(Inter－Integrated Circuit)是由 Phiilps 公司开发的，由于它引脚少，硬件实现简单，可扩展性强，不需要 USART、CAN 等通讯协议的外部收发设备（那些电平转化芯片），现在被广泛地使用在系统内多个集成电路(IC)间的通讯。I2C只有一跟数据总线 SDA(Serial Data Line)，串行数据总线，只能一位一位的发送数据，属于串行通信，采用半双工通信。半双工通信：可以实现双向的通信，但不能在两个方向上同时进行，必须轮流交替进行，其实也可以理解成一种可以切换方向的单工通信，同一时刻必须只能一个方向传输，只需一根数据线。对于I2C通讯协议把它分为物理层和协议层物理层规定通讯系统中具有机械、电子功能部分的特性（硬件部分），确保原始数据在物理媒体的传输。协议层主要规定通讯逻辑，统一收发双方的数据打包、解包标准（软件层面）。I2C物理层I2C 通讯设备之间的常用连接方式(1) 它是一个支持多设备的总线。“总线”指多个设备共用的信号线。在一个 I2C 通讯总线中，可连接多个 I2C 通讯设备，支持多个通讯主机及多个通讯从机。(2) 一个 I2C 总线只使用两条总线线路，一条双向串行数据线SDA（Serial Data Line ），一条串行时钟线SCL（Serial Clock Line ）。数据线即用来表示数据，时钟线用于数据收发同步(3) 总线通过上拉电阻接到电源。当 I2C 设备空闲时会输出高阻态，而当所有设备都空闲，都输出高阻态时，由上拉电阻把总线拉成高电平。I2C通信时单片机GPIO口必须设置为开漏输出，否则可能会造成短路。关于更多STM32的I2C相关信息和使用方法可以看这篇文章：https://url.zeruns.com/JC0Ah还有江协科技的STM32入门教程：https://www.bilibili.com/video/BV1th411z7sn?p=31我这里就不详细讲解了。需要用的元件STM32开发板入门套件：https://u.jd.com/fQS0YAeSTM32F103最小系统板：https://s.click.taobao.com/TsFFvwtOLED模块：https://s.click.taobao.com/EF0Evwt杜邦线：https://s.click.taobao.com/VMkDvwt面包板：https://s.click.taobao.com/bhg8TxtDAPLink（可代替ST-Link，带虚拟串口）：https://s.click.taobao.com/QVQ8Txt江协科技的STM32入门套件：https://s.click.taobao.com/NTn9Txt程序完整工程下载地址：百度网盘：https://url.zeruns.com/kSxoe 提取码: wgc3123网盘(不限速)：https://www.123pan.com/s/2Y9Djv-HGcvH.html 提取码:m7sp工程使用Keil5创建，用Vscode+EIDE开发，两个软件都可以打开此工程。工程文件全部使用UTF-8编码，如果打开显示乱码需要修改编辑器编码为UTF-8。main.c文件：#include …

使用VSCode代替Keil实现STM32和51单片机的开发
type: item
date: 2022-10-01T14:43:00+08:00
description: AI摘要 使用VSCode通过安装插件实现STM32和51单片机开发，替代Keil，解决其编辑功能弱、中文支持差等问题，提升开发效率与体验。 此内容根据文章生成，仅用于文章内容的解释与总结 使用Visual Studio Code开发STM32和51单片机，VS Code作为编辑器来开发嵌入式程序。视频教程：https://www.bilibili.com/video/BV18e4y1H7xX/电子/单片机技术交流群：2169025065VS Code简介Visual Studio Code是是由微软研发的一个轻量级但功能强大的源代码编辑器，这个软件是免费开源的，可在您的桌面上运行，并且可用于Windows，macOS和Linux。它具有对JavaScript，TypeScript和Node.js的内置支持，并具有丰富的其他语言（例如C ++，C＃，Java，Python，PHP，Go）和运行时（例如.NET和Unity）扩展的生态系统。如果你不喜欢Dev的开发界面，或是Visual Studio启动工程的缓慢，那么你应该尝试使用VScode来编写C/C++程序。因为它足够高效简洁且高效。作为一个51单片机或STM32单片机的使用者，keil一直是我们的必备的一款工具之一。但kei的一些问题也一直存在，被人吐槽最多的就是编辑器功能单一、提示功能不强、对中文支持不友好。当然，还有一些爱美的朋友，说它界面丑陋。而VS Code作为一款微软出品的、界面友好的编辑器，一直深受程序员的喜爱。现在我们可以通过安装插件的方式，在VS Code上进行51或者STM32的开发。方法如下。软件安装需要先安装好Keil和VS Code，怎么安装就不讲了，自己百度一下。VS Code官网：https://url.zeruns.com/6y6RDKeil5下载地址：https://url.zeruns.com/usV3e修改语言为中文打开vscode点击左边的这个扩展的图标（下图所示），搜索栏输入Chinese，安装第一个扩展插件，安装完后重启vscode就变成中文了。安装扩展插件首先安装C/C++ Extension Pack扩展。安装Keil Assistant扩展。安装完后点击扩展设置添加keil的可执行文件的路径，这里有两个路径，上面是C51的，下面是MDK的，你要填自己keil安装的目录，参考下图。我将C51和MDK安装到一起了，所以两个填同一个地址就行，如果是分开安装的就需要分开填。到这设置就完成了，下面演示一下怎么使用。用VSCode开发首先需要用keil或stm32cubemx来新建一个工程项目，并把编译和调试下载的相关设置设置好。接着用vscode打开项目文件夹。接着就可以用vscode来开发stm32了，下图所示的是编译和下载的按钮。点击这个编译按钮，vscode就会调用keil来完成编译。点击下载按钮，编译好的程序就会被下载到你的stm32单片机上。51单片机同样也可以使用这种方式开发。推荐阅读高性价比和便宜的VPS/云服务器推荐: https://blog.vpszj.cn/archives/41.html使用NPS搭建内网穿透服务器，带Web面板：https://blog.vpszj.cn/archives/748.htmlLinux搭建网站教程，建站教程：https://blog.vpszj.cn/archives/1094.html我的世界服务器搭建教程：https://blog.vpszj.cn/archives/tag/minecraft基于STM32和HC-SR04模块实现超声波测距功能：https://blog.zeruns.com/archives/680.htmlESP8266开发环境搭建及项目演示：https://blog.zeruns.com/archives/526.html