我正在努力学习和掌握嵌入式C,所以我只想测试我在Github上找到的一段代码,它是为STM32F4发现板构建的。我实际上正在做的董事会是STM32L152。当我试图构建/运行代码(显然不能运行)时,我得到的错误大多与未定义的函数或“标识符'function_name‘未定义”有关,请注意,代码文件包含一个库(lib)。查看代码文件:Servo
一般来说,要在STM32L1上成功地运行代码,应该做哪些修改?
谢谢
发布于 2017-04-26 18:32:23
这是两种不同的芯片。仅仅因为他们是来自ST仅仅因为他们是基于ARM的,他们不是相同的芯片。首先,stm32f4是一个皮质-M4的stm32l可能不是,99.9%的代码不会关心,只是一些组装可能。如果stm32l是一个皮层-M0,那么你的指令要少得多,所以如果它是一个皮层-m3,那么它就不会了。
真正的问题是外围设备,而不是这是两个芯片,而不是这是两个arm芯片,外设可以/将有所不同。ST有许多使用相同uart或相同GPIO或其他芯片的芯片,但它们有多个用于STM32芯片的uart,以及多个gpio。当它们制造新芯片时,它们混合并匹配,所以如果你想从一个芯片移植到另一个芯片,你需要通过外围设备读取新的和旧的文档,看看是否有什么变化。
听起来你使用的是一个库,所以工具可能会从芯片中知道你有哪些外设和你需要的库,所以它可能找不到它们,因为对于那个芯片,那个外围设备和那些定义不适用。一次一次吃一次,然后在芯片之间移植。
发布于 2018-09-22 01:54:54
stm32 (L)在云EEPROM中进行锯齿,当它们进入睡眠模式时非常重要,并且希望在唤醒后恢复变量。因此,确保应用程序在睡眠模式下运行,需要将数据保存在某个地方。因此,如果您使用STM (F)系列,需要注意外部EEPROM
https://stackoverflow.com/questions/43640408
复制相似问题