|
在使用IAR for stm8編程的時(shí)候,會使用到stm8s.h的頭文件。
官網(wǎng)下載的庫函數(shù)直接用需要在main.c最后加上這么一段代碼,才可以編譯通過
#ifdef USE_FULL_ASSERT
void assert_failed(u8* file, u32 line)
{
while (1)
{
}
}
#endif
stm8.h頭文件中最開始會有這么一段
/* Uncomment the line below according to the target STM8S or STM8A device used in your
application. */
/* #define STM8S208 */ /*!< STM8S High density devices with CAN */
/* #define STM8S207 */ /*!< STM8S High density devices without CAN */
/* #define STM8S007 */ /*!< STM8S Value Line High density devices */
/* #define STM8AF52Ax */ /*!< STM8A High density devices with CAN */
#define STM8AF62Ax */ /*!< STM8A High density devices without CAN */
/* #define STM8S105 */ /*!< STM8S Medium density devices */
/* #define STM8S005 */ /*!< STM8S Value Line Medium density devices */
/* #define STM8AF626x */ /*!< STM8A Medium density devices */
/* #define STM8S103 */ /*!< STM8S Low density devices */
/* #define STM8S003 */ /*!< STM8S Value Line Low density devices */
/* #define STM8S903 */ /*!< STM8S Low density devices */
你可以針對自己的型號將前面的/*去除,另一種方法是不需要自己去除,options->c/c++ compiler->Preprocessor中的defined symbols中加入對應(yīng)的型號,如STM8AF62Ax
如若不然,會跳出錯(cuò)誤,因?yàn)閔文件中有這一段,未預(yù)定義則會報(bào)錯(cuò)
#if !defined (STM8S208) && !defined (STM8S207) && !defined (STM8S105) && \
!defined (STM8S103) && !defined (STM8S903) && !defined (STM8AF52Ax) && \
!defined (STM8AF62Ax) && !defined (STM8AF626x) && !defined (STM8S007) && \
!defined (STM8S003)&& !defined (STM8S005)
#error "Please select first the target STM8S/A device used in your application (in stm8s.h file)"
#endif
stm8s_conf.h文件是包含了各個(gè)型號可用的外設(shè),如
#if defined(STM8S208) ||defined(STM8S207) || defined(STM8S007) ||defined(STM8S103) ||\
defined(STM8S003) || defined(STM8S903) || defined (STM8AF52Ax) || defined (STM8AF62Ax)
#include "stm8s_uart1.h"
#endif /* STM8S208 || STM8S207 || STM8S103 ||STM8S903 || STM8AF52Ax || STM8AF62Ax */
可見62ax有uart1 但是62a6并沒有uart1只有uart3 沒有看到哪里有具體說明小型號對應(yīng)的編號 可以自己嘗試調(diào)試
|
評分
-
查看全部評分
|