Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从stm32F到stm32L的C代码修改_C_Embedded_Microcontroller_Stm32_Stm32ldiscovery - Fatal编程技术网

从stm32F到stm32L的C代码修改

从stm32F到stm32L的C代码修改,c,embedded,microcontroller,stm32,stm32ldiscovery,C,Embedded,Microcontroller,Stm32,Stm32ldiscovery,我正在努力学习和掌握嵌入式C,所以我只是想测试我在Github上找到的一段代码,它是为STM32F4发现板构建的。我实际工作的电路板是STM32L152。当我试图构建/运行代码时(显然它不起作用),我得到的错误主要与未定义的函数或“标识符‘function_name’未定义”有关,请注意,代码文件包含一个库(lib)。 查看代码文件: 一般来说,为了在STM32L1上成功运行代码,应该做哪些修改 谢谢,这是两种不同的芯片。仅仅因为它们来自ST,仅仅因为它们基于ARM,它们就不是同一个芯片。对于

我正在努力学习和掌握嵌入式C,所以我只是想测试我在Github上找到的一段代码,它是为STM32F4发现板构建的。我实际工作的电路板是STM32L152。当我试图构建/运行代码时(显然它不起作用),我得到的错误主要与未定义的函数或“标识符‘function_name’未定义”有关,请注意,代码文件包含一个库(lib)。 查看代码文件:

一般来说,为了在STM32L1上成功运行代码,应该做哪些修改


谢谢,这是两种不同的芯片。仅仅因为它们来自ST,仅仅因为它们基于ARM,它们就不是同一个芯片。对于初学者来说,stm32f4是cortex-m4,stm32l可能不是,99.9%的代码不会在意,只是一些程序集可能会在意。如果stm32l是cortex-m0,那么您的指令就少得多,因此如果它是cortex-m3,那么程序集就不会起作用

真正的问题是外围设备,不是这是两个st芯片,不是这是两个arm芯片,外围设备可以/将有所不同。ST有许多芯片使用相同的uart或相同的gpio或其他,但它们有多个用于STM32芯片的uart和多个gpio。它们在制造新芯片时混合匹配,所以如果你想从一个芯片移植到另一个芯片,你需要一个接一个地读取新的和旧的文档,看看有什么变化


听起来你正在使用一个库,因此工具可能会从你选择的芯片中知道你有什么外设以及你需要哪个库,因此它可能找不到它们,因为对于该芯片,外设、函数和那些定义不适用。每次一个通道,在芯片之间进行端口连接。

stm32(L)系列包括EEPROM,当他们进入睡眠模式并希望在wakup后恢复变量时,EEPROM非常重要。所以,确保应用程序在睡眠模式下运行,并且需要将数据保存到某个地方。因此,如果您使用STM(F)系列,则需要注意将外部EEPROM连接得太宽。。