提示:文章包括省事部分和学会部分
前言
笔者学习了STM32F103ZET6和STM32F104ZGT6两款单片机,平时做项目一般都用这两款芯片。但是笔者当时但是还不会自己做这两块芯片的PCB电路板,所以只能购买现有的系统板,这些系统板一般尺寸都很大,很多场景不适合。在一个项目中,负责人提出必须使用F103C8T6开发板。起初笔者采用“破解”的方式,直接往源目录里添加128K的驱动文件,也能让程序在单片机里跑起来。但是心里总觉得不是很稳,就决定模仿正点原子的工程模板写一版出来。
一、想自己写在哪里学?
话部多说,先上链接: 正点原子的M3教学视频
这个教学视频所教授的芯片并非STM32F103C8T6,但是由于两款芯片同属于M3内核,所以只需要你自己跟着视频去学,然后做少量尝试,就可以写出来模板。当然看书籍也很重要,视频下方有链接,下载里面的《STM32F1开发指南》,看里面新建工程模板那一小结然后做少量尝试也可以写出自己的模板。注意:想要了解原理,要看STM32的固件库介绍和MDK5的介绍,下方书籍目录中有。笔者建议视频和书籍都看看,里面语言诙谐生动,完全不像冷冰冰的技术手册和论文。
上两个图看看视频目录和书籍目录:
二、省事直接下载作者写好的
1.部分代码
下面展示 主函数
。
int main(void)
{
u16 t;
u16 len;
u16 times=0;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
uart_init(115200);
while(1)
{
if(USART_RX_STA&0x8000)
{
len=USART_RX_STA&0x3fff;
printf("\r\n 发送的数据为 \r\n\r\n");
for(t=0;t<len;t++)
{
USART_SendData(USART1, USART_RX_BUF[t]);
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
}
printf("\r\n\r\n");
USART_RX_STA=0;
}else
{
times++;
if(times%5000==0)
{
printf("\r\nSTM32F103C8T6¿ª·¢°å\r\n");
}
if(times%200==0)printf("请输入数据\n");
delay_ms(10);
}
}
}
测试程序为串口一的收和发,懒得往里面添加灯闪烁了。作者亲测可用,并且现在还在用。
2.工程模板包
链接:https://pan.baidu.com/s/1GT7kQ30N4DRhDxY7tWrtjw?pwd=smnh
链接: 点击就可百度网盘链接
提取码:smnh
总结
后续会写怎么学习和制作STM32 PCB板的,大家多多关注。
笔者已经尽可能的理清逻辑,但是难免会有些地方不容易理解,所以欢迎大家多多留言提问和指教呀。技术问题,有问必回!!!