1. 測試環境:STM32C8T6
2. 測試接口:
3.串口使用串口一,波特率9600
單片機引腳------------CH340引腳
VCC--------------------VCC
GND-------------------GND
PA9--------------------RXD
PA10-------------------TXD
1. 建立lib庫原因:LIB 的一個主要用途,就是用在工作上的,當你某些 C 文件不希望讓別人看到源代碼,但 又必須給別人使用的時候,把你這些機密的 C 文件編譯成 LIB 是一個最好的方式.
2. 在009程序上修改,并為011_STM32開機管理次數做基礎
3. 開始修改程序
4. 將程序復制成兩份,一份用來制作lib庫,另一個用來進行測試
5. 將需要做成lib庫的工程全部刪除文件,只保留需要做成lib庫的文件

6. 生成庫,編譯

7. 編譯之后會有一個文件出來,后綴是.lib的

8. 將STM32.lib文件復制到測試工程中去
9. 打開測試工程,編譯
10.在工程中刪除stmflash.c和stmflash.h文件
11.將STM32.lib文件添加進去,編譯
12.去掉頭文件就能夠解決錯誤了,但是還有一個警告,隱式聲明問題
13.將聲明的函數進行外部聲明就好了,使用到的函數都加個外部聲明給他,就不會有警告了
14.得到的結果和009內部flash一樣的結果,但是stmflash已經生成lib庫了
15.為下一篇開機啟動次數打下基礎
16.結束
關鍵字:STM32 程序移植
引用地址:
010_STM32程序移植之_lib庫建立
推薦閱讀最新更新時間:2025-04-18 18:01
STM32程序移植之_內部flash開機次數管理lib庫建立
1. 測試環境:STM32C8T6 2. 測試接口: 3. 串口使用串口一,波特率9600 單片機引腳------------CH340引腳 VCC--------------------VCC GND-------------------GND PA9--------------------RXD PA10-------------------TXD 1. 緊接011,下面進行lib可的移植 2. 需要移植好的程序和密碼初始化 3. 將移植好的程序復制一份,改名為lib庫建立,打開編譯 4. 將所有的文件刪除,留下兩個文件 5. 編譯成庫,編譯成功之后將STM32.lib庫復制出
[單片機]
淺談Win CE應用程序的可移植性
? 由于桌面Windows絕大多數情況下運行于X86平臺上,也就不存在不同平臺的可移植性問題。然而Windows CE運行在四大架構(X86,SHx,MIPS,ARM)的CPU上,編寫應用程序時就需要考慮它的移植。 ??????
??????? 以下通過在wince系統下訪問物理地址,來看看如何編寫可移植性較好的應用程序。 ??????
??????? 首先必須明確兩個概念。 ??????
??????? 1. 在X86平臺下才有I/O地址這一說,在其他體系的CPU(如ARM/MIPS)下是沒有I/O端口的。因為X86下把I/O和存儲器分開編址,導致其有兩種地址;而別的CPU是把兩者統一編址,即把I/O映射到存儲器上。
[嵌入式]
stm32固件庫UART操作
來源: 野火 零死角玩轉STM32-F407 407USART2—USART2接發 //中斷 _it.c extern uint8_t Rxflag; extern uint8_t ucTemp; void RS232_USART_IRQHandler(void) { if(USART_GetITStatus( RS232_USART, USART_IT_RXNE ) != RESET) { Rxflag=1; ucTemp = USART_ReceiveData( RS232_USART ); } } ==================== //引腳定義 /******
[單片機]
L2-2 Keil5-MDK軟件STM32工程仿真(USART篇)
前置條件 已創建STM32工程(本文以STM32F103ZE系列芯片為例) 已完成USART1的驅動程序編寫(包括printf的硬件重定向) 代碼示例 usart.h #ifndef _USART_H_ #define _USART_H_ #include stm32f10x.h #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif void Usart_Init(void); // 對外提供的
[單片機]
初識STM32固件庫——我們認為管件庫應該是什么樣子的
一、STM32固件庫文件分析 匯編編寫的啟動文件startup_stm32f10x_hd.s 設置堆棧指針 設置PC指 初始化中斷向量表 配置系統時鐘 對用C庫函數 __main最終去到C的世界 時鐘配置文件 system_stm32f10x.c:將外部時鐘HSE=8M,經過PLL倍頻為72M 外設相關的(xx:GPIO UART I2C SPI FSMC) stm32f10x.h:實現內核之外的外設寄存器映射 stm32f10x_xx.h存放外設的初始化結構體、外設初始化結構體成員的參數列表、外設固件庫的函數聲明 stm32f10x_xx.c外設驅動函數庫文件 內和相關的 core_c
[單片機]
STM32點亮小燈的程序和方法
STM32點亮小燈(庫函數版) 首先解釋以下 #ifndef _LED_H #ifndef _LED_H ...... ...... #endif 避免重復引用頭文件的內容。 一般放在頭文件里面,作用就是以防你在.c文件里面不小心重復包含頭文件的時候不會報錯 搞起來,搞起來。玩32其實點個燈是很難的,不像51,arduino等單片機 首先定義led庫 /******聲明led庫,防止在主函數中被重復調用*****/ #ifndef __LED_H #define __LED_H void LED_Init(void); #endif 定義led.c文件 #include led.h #include stm32f10x.
[單片機]
【STM32學習筆記1】Cortex-M3與STM32基本概念
前言 本系列文章統一圍繞STM32F103C8T6最小系統開發板進行記錄,如涉及其他開發板將會特別說明。 ARM處理器 ARM(Advanced RISC Machine)是一個32位精簡指令集(RISC)處理器架構,應用于許多嵌入式系統設計中。其中,自從ARMv7系列架構開始,ARM公司推出了Cortex系列,并根據不同的應用場景推出了Cortex-M,Cortex-A和Cortex-R三款不同方向的產品。 Cortex系列產品對比 Cortex-M3與STM32概述 ARM代表了一種芯片標準,體現了芯片的架構設計,而具體涉及到存儲器容量,片上外設,IO引腳數等實現,則是由不同的芯片廠商進行設計的,比如當前最主流的ST
[單片機]
stm32庫函數FSMC_NORSRAMInit()解析
這是一段對nor存儲器的時序進行編程的函數,函數形式為void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct),里面只有一個參數,這個參數為指針類型,指向一段數據結構,這個數據結構就保存著對時序進行配置的的各個參數,這個結構的詳細內容為 typedef struct { uint32_t FSMC_Bank;//nor被分為四塊,其中這個參數是說明對那個塊編程 uint32_t FSMC_DataAddressMux;//地址數據是否復用 uint32_t FSMC_MemoryType;//存儲器類型 uint3
[單片機]