大锤子 发表于 2024-2-3 23:13:12

STC8H试验箱例程使用VSCode+SDCC+Platformio使用库函数实现


STC8H试验箱例程使用VSCode+SDCC+Platformio使用库函数实现

在此非常感谢STC赠送的全套实验设备。

在前边的分享中提到了将自己的库提交到PlatformIO提供更多的开发者使用。
那也只是一个简单的GPIO的Demo。

该贴将逐步分享使用VSCode + SDCC + PlatformIO 使用STC提供的STC8G_H 库文件来实现STC8H 实验箱的例程。
例程文件就放在库文件的example文件夹下:


目前已经实现4个例程;
除了实现例程外,也会分享在移植的过程中遇到的小问题。

库文件地址:库文件地址

TIPS:
1、添加库函数依赖的方式:
(1)、使用pio的library向导安装:
打开PIO HOME,左侧找到Liraries,搜索需要的库:


点击需要的库名称,点击安装到目标工程:



(2)、直接在工程配置文件中,配置lib_deps 为库函数的git地址:



2、库函数中GPIO初始化的地方通过或选择多个引脚:




3、D_LED 演示:


kksk 发表于 2024-2-4 09:40:21

感谢分享

大锤子 发表于 2024-2-5 00:24:36

更新:

04:使用T0,T1做计数器;


05:利用定时器测量脉冲宽度:


06:外部中断测试:



TIPS:
在移植06时按键不起作用,经过代码对比发现原来的实现中有 EX1=1 和 EX0 = 1 使能外部中断;但是在原来的库函数中仅有设置中断模式(上升沿、下降沿触发);
在库函数中增加设置项后成功实现功能:
原来的结构体定义:


修改后结构体定义:


国学芯用 发表于 2024-2-5 09:14:47

加油哦利用假期弯道超车{:4_250:}

大锤子 发表于 2024-2-10 01:27:49

更新: https://gitee.com/dchuizi/stc8-g-h-lib.git

07:
显示效果为: 上电后显示+2秒计数, 然后睡眠2秒, 醒来再+2秒,一直重复.





08:
显示效果为:
上电后显示秒计数, 计数范围为0~255,显示在右边的3个数码管.
显示5秒后, 睡眠. 按板上的SW17、SW18唤醒, 继续计秒显示. 5秒后再睡眠.
如果MCU在准备睡眠时, SW17/SW18按着(INT0/INT1为低电平), 则MCU不睡眠, 直到INT0/INT1为高电平为止.





09:
显示效果为:
显示秒计数, 5秒后不喂狗, 等复位.
下载时, 选择时钟 24MHZ (用户可自行修改频率).







神农鼎 发表于 2024-2-10 09:22:27


大锤子 发表于 2024-2-23 09:51:17

更新: https://gitee.com/dchuizi/stc8-g-h-lib.git
显示效果:
串口1全双工中断方式收发通讯程序。
通过PC向MCU发送数据, MCU收到后通过串口1把收到的数据原样返回.



神农鼎 发表于 2024-2-23 10:04:30

上传视频,直接上传到 我们新增的 阿里云 视频 端

上传 阿里云 视频 端 按钮



大锤子 发表于 2024-2-23 11:09:11

神农鼎 发表于 2024-2-23 10:04
上传视频,直接上传到 我们新增的 阿里云 视频 端

上传 阿里云 视频 端 按钮


好的

大锤子 发表于 2024-2-25 01:11:47


更新: https://gitee.com/dchuizi/stc8-g-h-lib.git


11:串口2实验:
串口2全双工中断方式收发通讯程序。
通过PC向MCU发送数据, MCU收到后通过串口1把收到的数据原样返回.


TIP:
1: 程序中使用P46,P47用作串口RX,TX. 因此这里需要记得将P46,P47设置为准双向口;
2: 试验箱中通过J2 DB9接口来测试串口2,手上没有线的,可以直接将J7,J8 中的P46,P47通过杜邦线连接;
电脑连接Link1D, Link1D通过杜邦线连接如下图。


3:使用串口中断模式时发送完,进入中断时除了清理中断标志位。记得缓存数据发送完后清理忙标志;




页: [1] 2
查看完整版本: STC8H试验箱例程使用VSCode+SDCC+Platformio使用库函数实现