
STC32G12K128 ZERO
简介
样式为Raspberry Pi Zero的STC32G12K128开发板,具有TF卡槽和蓝牙模块插槽,v1.3版本tf卡槽更改为旋转编码器
简介:样式为Raspberry Pi Zero的STC32G12K128开发板,具有TF卡槽和蓝牙模块插槽,v1.3版本tf卡槽更改为旋转编码器开源协议
:GPL 3.0
描述
特点
- 是一个和树莓派ZERO大小和布局类似的STC32的开发板
- 板载通用外置蓝牙模块插槽,可以使用蓝牙进行通信
TF卡槽1.3版本更改为旋转编码器- 使用了所有引脚不浪费
- 带有外置EEPROM
- 有冷启动开关,可以直接烧录程序
- 底层外置了TX,RX测试点
- 不焊额外引脚的情况下可以使用树莓派ZERO的外壳
- 使用了0603,焊接不是太困难
- 4层板,使用1.2厚度
mindmap
STC32开发板
蓝牙模块
外置EEPROM
冷启动烧录
旋转编码器
外置引脚
开发板
请在关闭开关状态下进行烧录和调试
冷启动烧录&读取芯片信息测试
烧录时CH340N的RTS引脚为低电平,SS8550导通,烧录完毕RTS引脚为高电平,SS8550截止
板载LED测试
蓝牙连接测试
每隔两秒自动发送'TEST!'文本
注意设置的波特率和主时钟的数值
主时钟
#define MAIN_Fosc
波特率
COMx_InitStructure.UART_BaudRate
外部EEPROM:M24C02测试
STC32具有DMA,所以通过DMA直接访问M24C02
在编译前,由于STC以前的芯片中断向量只有0~31,这次需要使用的已经超过了31,所以需要安装一下中断向量的补丁到KEIL中
中断向量的变量名为:DMA_I2CR_VECTOR
需要用串口查看打印,依然注意主时钟和波特率
根据STC32G12K128 ZERO,将I2C的GPIO和I2C的PIN修改为1.4,1.5
P1_MODE_OUT_OD(GPIO_Pin_4 | GPIO_Pin_5);
I2C_SW(I2C_P14_P15);
测试结果:
旋转编码器测试
根据官方手册,共用了13号中断
注:由于IO中断已经超过31,这里根据官方文档的方法,需要添加一个ISP.ASM文件,和源代码一起放入了附件中
使用IO中断,中断引脚为0.3,上升沿
根据官方文档:
void common_isr() interrupt 13
{
u8 intf;
intf = P0INTF;
if(intf)
{
P0INTF = 0x00; // 代码复位
if(intf & 0x08) // P0.3引脚
{
flag = 1; // 判断是否为上升沿
}
}
}
根据旋转编码为文档:
判断上升沿时A引脚和B引脚的状态是否相等
测试结果:
版本
v1.3
TF卡修改为旋转编码器
TF引脚的SPI接口释放到排针中
TF卡引脚:P2.2 P2.3 P2.4 P2.5
修改后:
旋转编码器引脚 P0.3 P0.4 P0.5
P0.6修改为新的一路LED指示灯引脚
v1.2
修正冷启动电路
v1.1
修改电源开关电路
增加底层RX,TX触点
v1.0
打板时请注意一下版本
设计图

BOM


评论