启动文件的选择,根据容量来选择。startup_stm32f10x_ld.s,startup_stm32f10x_md.s,startup_stm32f10x_hd.s。
小容量:FLASH≤32K;32页,每页1K
中容量:64K≤FLASH≤128K;128页,每页1K
大容量:256K≤FLASH;256页,每页1K
以前好像随便选择的,也不知道选的对不对,还真没注意单片机的容量是哪个呢,而且我自己设计的时候就是选择的管脚数量来决定使用哪种单片机呢,只要把所有需要的功能都加上就可以了,然后再选个便宜的或者以前用过的,不去管能存多少程序,毕竟功能不复杂,程序代码也不是很多了。所以之前工作时候他们都选择容量什么的感觉很蒙圈呢,当然因为要求不高,所以就很随便,实际上如果从价格等等的选择就要求很高了,需要仔细选片子,比如如果便宜1毛钱一片,量少倒没问题,如果上万片就便宜1千的成本还是很多的,当然实际上选择的片子可能还不止便宜1毛呢。
STM32的命名规则,我基本上选择的是STM32f103系列,是增强型的,管脚种类就相对多些,引脚数目: T:36脚 ,C:48脚,R:64脚, V:100脚,Z:144脚
以前好像用过STM32f105,跟STM32f107来着,不过那会还真不懂,以为跟103差不多,所以也就没注意,不过这两个好像是互联型的。
内存存储容量,也就是FLASH,就是单片机程序的存储空间了:(FLASH 闪存掉电不丢失、SRAM掉电丢失)
4=16K字节的算存存储器,即FLASH
6=32K字节的算存存储器,即FLASH
8=64K字节的算存存储器,即FLASH
B=128K字节的算存存储器,即FLASH
C=256K字节的算存存储器,即FLASH
D=384K字节的算存存储器,即FLASH,这个还真是第一知道有这个容量,毕竟二进制的256以后感觉上是512呢。
E=512K字节的算存存储器,即FLASH
至于封装我用过的基本上是T=LQFP了,因为比较好焊接。温度是6,工业级温度范围-40℃-85℃了。
新建的寄存器版工程代码,因为没有用到SystemInit函数,所以需要在启动函数里面找到
;IMPORT SystemInit
;LDR R0, =SystemInit
; BLX R0
前面加上半角字符";"注释掉,不然回报错误".\Template1.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_md.o)".
新建的库函数版工程代码,建议加上(外部会用到SystemInit函数),以初始化stm32时钟等.
补:基本上是现在学到跟我工作时候的没掌握的问题,实际上也是我目前了解到的,也算混日子的时候不知道,掌握不深的东西。