请选择 进入手机版 | 继续访问电脑版

深蓝社区 - 让开发没有限制!

 找回密码
 立即注册

扫一扫,访问微社区

搜索
查看: 828|回复: 6

【战舰V3】1. 点亮流水灯

[复制链接]

18

主题

27

帖子

756

积分

版主

Rank: 7Rank: 7Rank: 7

积分
756
发表于 2018-6-5 18:57:40 | 显示全部楼层 |阅读模式
大家好,我是Xumk,很高兴在这里分享自己的心得体会。
在这里简单规范下STM32的编程规范吧。
其中编程中
Startup为STM32的BIOS启动
CMSIS为STM32的系统内核
Libraries是STM32的系统库
System是用户就常用STM32函数进行封装的系统级常用API
Hardwares是用户传感器的外设库(用户自行编写)
User是用户主函数main的调用(用户自行编写)
keilkill.bat是清空中间文件,方便打包的文件。
Readme.txt或者Readme.md是用户工程导读

代码编写习惯有些借用战舰(广州星翼电子),和机智云(广州机智云)的开源代码编程习惯。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

18

主题

27

帖子

756

积分

版主

Rank: 7Rank: 7Rank: 7

积分
756
 楼主| 发表于 2018-6-5 19:00:02 | 显示全部楼层
在Startup文件夹中,startup_stm32f10x_hd.s为汇编程序的启动代码,相当于电脑系统里面的BIOS系统。唯一需要注意的就是,看STM32的芯片类型,比如说,STM32F103C8T6,为MD,STM32F103ZET6,为HD。

18

主题

27

帖子

756

积分

版主

Rank: 7Rank: 7Rank: 7

积分
756
 楼主| 发表于 2018-6-5 19:02:37 | 显示全部楼层
在CMSIS中,有core_cm3.c和system_stm32f10x.c为系统内核(对内核进行操作和封装),还有系统配置库(比如说配置GPIO速率,和设置晶振速度等)

18

主题

27

帖子

756

积分

版主

Rank: 7Rank: 7Rank: 7

积分
756
 楼主| 发表于 2018-6-5 19:06:38 | 显示全部楼层
在Libraries中,常见的是misc.c设置优先级,同时对STM32的外设进行二次封装,暴露出相应的API,供下面的Hardwares包来调用。在Libraries中,包含有adc、can、cec、crc、dma、exit(中断)等芯片手册介绍的外设。都是ST公司封装好的。

18

主题

27

帖子

756

积分

版主

Rank: 7Rank: 7Rank: 7

积分
756
 楼主| 发表于 2018-6-5 19:10:23 | 显示全部楼层
在System中,主要是三个部分,sys、delay、和usart。sys主要是GPIO的位操作封装,让STM32的代码更好地无缝从51单片机中过度;延时函数不用说了,通常微秒、毫秒的函数常常用到,也被封装了起来,单片机虽小,但是通信几乎也是必须的,比如说,通过STM32的3个-5个串口,进行WiFi通信,或者2G 4G通信,同时预留一个串口进行日志打印。都是通过在里面定义来的。

18

主题

27

帖子

756

积分

版主

Rank: 7Rank: 7Rank: 7

积分
756
 楼主| 发表于 2018-6-5 19:13:07 | 显示全部楼层
在Hardwares中,定义了自定义的外设了,比如说指示灯,因为不同设计者的风格不同,引脚定位也不同,所以呢,这个需要自行编写,但是我们把引脚定义在相应的.h文件里面,通过宏定义去指定。这样的话,我们在移植代码的时候,更加方便的、更加简易去移植。
回复 支持 反对

使用道具 举报

18

主题

27

帖子

756

积分

版主

Rank: 7Rank: 7Rank: 7

积分
756
 楼主| 发表于 2018-6-5 19:15:04 | 显示全部楼层
在User中,主要就是一个main.c函数了,这个函数(文件),也就是我们的工程入口,我们会直接在main函数中,init()初始化,相应的外设。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|MIT Inc. ( 粤ICP备16015077号

GMT+8, 2019-3-25 07:12 , Processed in 0.073859 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表