启动文件基于STM32单片机启动文件的作用和启动过程解析
启动文件里面 Reset_Handler 复位程序里面调用外部函数SystemInit 初始化系统的时钟 来至于固件库 自己写
调用__main函数 __main函数是C/C++运行时库的一个函数,嵌入式系统在进入应用主程序之前必须有一个初始化的过程,使用__main标号引导系统时必须将应用程序的入口定义为main()。 ARM启动代码中_main 与用户主程序main()的区别
实现从汇编来到C
<> 编译器目录下寻找
“” 先在工程文件下寻找 如果找不到再到编译器目录下寻找
重点:端口输入数据寄存器(打开)–>端口配置寄存器(配置)–>外设时钟使能寄存器
查看对应芯片的参考手册
PA8口
以PA8为例 :0x4001 0800 00
00 位里面有7种寄存器 偏移地址不同
0x00 端口配置低寄存器 32位 4位对应一个端口 PA0-PA7
0x04 端口配置高寄存器 PA8-PA15
0x08 端口输入数据寄存器 0-15
0x0c 端口输出数据寄存器 0-15
0x10 端口端口位设置/清除寄存器
0x14 端口清除寄存器
0x18 端口配置锁定寄存器
置位 |=
清零 &=~
当外部晶振无法使用时是芯片默认使用只带晶振 HSI = 8M