开发板简介
近期集中精力做了一块STM8S系列开发板,准备基于这个开发板做一套免费的学习教程。开发板硬件改到了第三个版本,力争把功能完善。现在嘉利创打板子价格很便宜了。五块钱可以加工五只电路板,个人DIY成本可降到很低。
开发板资源
STM8系列的优点很多,性价比没得说,同等价格性能吊打51系列,使用iar编程,配合stlink可以硬件仿真运行。只需要一根线即可实现。还有就是外设资源丰富。
下面介绍一下开发板都包含哪些东西。
- 一颗5V板载有源蜂鸣器
- 一颗可控的状态LED
- 多功能复用按键,带一键开关机功能,支持软件断电关机
- USB转TTL电路+UART接口1个。可以设置各种状态实验(自发自收,相互收发实验)
- 仿真器接口一个。可以在线运行仿真调试
- ADC模数转换通道3路(其中一路内置连接到了测量供电电压的接口上)。
- 硬件PWM输出通道7路。
焊接实物:
样板一共五块,全部焊接完成,测试通过都没有问题。
教程相关
个人前期针对这个电路板,采用C++对STM8S的底层寄存器做了硬件抽象层,编程方式与arduino类似,后期更改以后还可以做到与arduino编程完全兼容,驱动程序通用。有兴趣的可以看一下目前的编码风格:
/************初始化函数,系统复位后只执行一次*************/void setup(){ //等待开机按键松开再进入主程序,再进入主程序防止误触发 while (board.key._pinLoad() == LOW) ; //开机蜂鸣器上电0.2s board.beep.open(); SysWait ::_wait_Ms(200); board.beep.close(); //设置板载按键中断:下降沿触发,设置中断函数key_trigger board.key._setTrig(Falling, &key_trigger); //开启串口,并设置好缓存接收地址 board.serial._openSerial(115200); board.serial._openReceive(buff); //定时器,开启中断并设置中断函数 BspTimer1._openTimer(10000, 160); BspTimer1._openInter(&timer1_trigger);}/******************************************************//************需要循环执行的代码部分************/void loop(){ board.serial._transmitString("demo test ok!!!"); board.status_led._pinInv(); SysWait ::_wait_Ms(200);}/*********************************************/
个人在工作空闲之余,会针对这个开发板做一套学习教程,从搭建开发环境开始到各种外设的应用。有兴趣的同学可以关注我跟进学习一下,为了方便大多数人跟进学习,教程分成使用寄存器和库函数两个部分版本同步跟进,暂时不做C++开发教程,有兴趣同学可以私信讨论。
设计资料领取
开发板暂时不对外出售,设计资料(包含原理图,PCB文件,BOM表)还真整理中,开源免费提供,头条号不方便提供连接,需要资料的童鞋可以找我领取
领取方式:
点赞并转发,私信我发送我邮箱,我会将设计资料以邮箱形式发送。
想跟进深入学习的也可以关注我注意动态,我会不定时发送一些学习教程,按照顺序学习即可。