最近在回顾51单片机,看到您的帖子,突然发现32确实是复杂很多。相比起来,51的内部感觉清晰可见。
当然,32复杂,是底层的麻烦,比如编译的时候,需要启动文件(.s)需要链接脚本(.icf/.ld)需要中断向量表和更多的库文件。烧录需要使用jtag或swd下载,且需要指定下载到什么地方。运行前,程序需要配置内外部时钟、配置锁相环倍频、配置各个时钟总线的分频、配置向量表地址、以及系统滴答定时器等。然后32的外设也是默认关闭的,包括寄存器都写不进去的那种,使用外设前,需要先开启外设时钟,才能开始配置外设。等等。。。
不过这些内容其实被库和软件隐藏起来了,或者说帮我们处理好了,其实楼主可以放心,你说的那些如引脚ABCD以及驱动什么的,站软件封装外来看,是很简单的。
我给个简单的建议,楼主可以先用CubeMX生成一个程序,他这个软件可以直接配置IO的输入输出包括外设什么的都可以直接配置。生成出来的程序直接就能跑,只要找到main函数的while(1),在里面就可以像51一样直接开始写程序了,
- HAL_GPIO_WritePin(GPIOA, GPIO_Pin_0, GPIO_PIN_RESET); // PA0=0
- HAL_Delay(500); // 500ms
- HAL_GPIO_WritePin(GPIOA, GPIO_Pin_0, GPIO_PIN_SET); // PA0=1
- HAL_Delay(500); // 500ms
复制代码
先简单改一改、玩一玩,程序能跑起来,再学一学,就水到渠成了。 |