Zeruns's Blog - Keil
type: channel
link: https://blog.zeruns.com/tag/Keil/
items: 基于STM32F1的0.96寸OLED显示屏驱动程序，支持硬件/软件I2C
items: 合泰HT32单片机开发环境搭建和配置教程
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 …

合泰HT32单片机开发环境搭建和配置教程
type: item
date: 2023-03-10T00:35:00+08:00
description: AI摘要 合泰HT32单片机开发环境搭建教程，包含所需软件、固件库和驱动安装，以及编程测试方法。通过官方例程修改实现LED点亮功能，并提供相关资源下载链接。 此内容根据文章生成，仅用于文章内容的解释与总结 HT32合泰(Holtek)单片机开发环境搭建安装教程前言最近在准备合泰杯的比赛，在看合泰官方的PPT和数据手册学习，顺便做个合泰单片机的开发环境搭建教程。合泰杯比赛发放的开发板是ESK32-30501，用的单片机是HT32F52352。合泰杯官网地址：https://url.zeruns.com/S7xu8合泰官方HT32F52352授课教材PPT：https://url.zeruns.com/r5Jt0 提取码：m9kj电子/单片机技术交流群：2169025065准备首先需要安装Keil MDK-ARM，这个就不详讲了，自己百度，或者看合泰的教程，合泰有提供Keil的激活码，可以用于 Holtek 的 Arm® Cortex-M0+ 微控制器系列产品，教程链接：https://url.zeruns.com/kwuFg下面需要用到的软件和固件库我已经打包好了，下载地址：https://url.zeruns.com/HT32 提取码：55bv需要用到的东西购买地址：ESK32开发板：https://s.click.taobao.com/ndAFyKuDAPLINK：https://s.click.taobao.com/Lt4FyKu杜邦线：https://s.click.taobao.com/QVTFyKu环境搭建安装烧录工具 HT32 ICP Tool，下图压缩包中的e-Link32_Pro_ICP_Tool_v030.exe，双击运行后一直下一步即可，会同时安装e-Link32的驱动，然后打开 HT32 ICP Tool，接上开发板，软件右下角选择一下单片机型号，点击Read，测试一下能不能正常读取。这个软件可以在合泰官网下载：https://url.zeruns.com/GEWtC安装HT32的Keil支持包，HT32_STD_5xxxx_FWLib_V1.3.4_6737.zip压缩包中的Holtek.HT32_DFP.latest.pack，双击运行后一直下一步即可。如果是合泰的其他单片机或者想下新版本可以去官网下：https://url.zeruns.com/HT32F52352安装 HT32 Virtual COM 驱动，这是e-Link32自带的虚拟串口的驱动，双击HT32_VCP_Driver_v121b.exe运行，一直下一步即可。安装HT32init，双击HT32init_V109beta.exe运行，一直下一步即可，这是一个类似于STM32CubeMX的软件，可以图形化配置生成代码。环境检查至此为止，环境搭建完毕，你现在可以使用数据线连接合泰单片机和电脑，然后回到电脑桌面，鼠标右键单击此电脑，选择属性然后在界面左侧点击设备管理器，然后查看是否出现图示结果。然后双击keil5软件，可能会弹出提示你检测到了新支持包，如果没有的话，可以点击这个按钮。编程测试最后需要建一个工程项目来检查是否可以一键下载程序到合泰单片机，建项目可能比较难，但是不要紧，可以把官方的例程改一下测试，官方例程就在那个HT32_STD_5xxxx_FWLib_V1.3.4_6737.zip固件库包里。固件库使用教程看下图ESK32-30501开发板上有两个LED可以用来测试，对应的端口分别是PC14和PC15。修改一下官方固件库里的GPIO/Output例程，修改如下图红框所示位置的内容后编译并下载即可点亮LED。效果如下图所示。附上改好的程序，里面还加上了用SysTick定时器做的延时程序：https://url.zeruns.com/CCJv2 提取码：7p2r推荐阅读高性价比和便宜的VPS/云服务器推荐: https://blog.zeruns.com/archives/383.html怎样搭建个人博客：https://blog.zeruns.com/archives/218.html我的世界服务器搭建教程：https://blog.zeruns.com/tag/mc/STM32读取SHT3x系列温湿度传感器：https://blog.zeruns.com/archives/700.html使用VSCode代替Keil实现STM32和51单片机的开发：https://blog.zeruns.com/archives/690.html

使用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