日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

剛剛接觸STM8單片機(jī),之前一直在Linux下開(kāi)發(fā),一時(shí)有點(diǎn)懵逼了,于是把自己的一些學(xué)習(xí)過(guò)程記錄下來(lái),希望對(duì)與像我這樣的門外漢有所幫助。


1、安裝IAR軟件: 百度一下,一大堆的安裝教程, 我安裝了2.0以上的版本,需要license,我用注冊(cè)機(jī)生成的注冊(cè)碼填進(jìn)去,一直提示注冊(cè)碼無(wú)效, 沒(méi)辦法使用,最后只能安裝 1.42版本的IAR,(安裝時(shí)記得安裝ST-LINK驅(qū)動(dòng));

2、在IAR中創(chuàng)新工程:project->create new project  然后選擇模板, 我選擇的是C模板,點(diǎn)擊OK, 就會(huì)生成一個(gè)main.c文件及main函數(shù);

3、把庫(kù)文件拷貝到工程目錄下,(這里我拷貝Libraries 、 Utilities)

4、配置工程信息:


鼠標(biāo)放到工程名上,點(diǎn)擊右鍵彈出如下:

點(diǎn)擊Options...,彈出如下配置界面:

5、以下簡(jiǎn)單的說(shuō)明一下一些配置,具體的配置還是需要根據(jù)自己的實(shí)際情況來(lái)配置:


a、general option 的Library Options 中的printf 和scanf 一定要選擇 small 不然代碼里面使用printf函數(shù)時(shí),編譯會(huì)提示如下錯(cuò)誤,這個(gè)錯(cuò)誤讓我郁悶里很久才找出原因:

b、C/C++ compiler 選項(xiàng),選擇C編譯器,c99標(biāo)準(zhǔn),preprocessor配置說(shuō)明如下:

c、因?yàn)椴捎玫氖荢T-LINK調(diào)試,所以debugger選項(xiàng)的配置如下:

其他的選項(xiàng)可以根據(jù)自己的需求配置,因?yàn)槲业捻?xiàng)目比價(jià)簡(jiǎn)單所以就沒(méi)有配置其他選項(xiàng)。


程序實(shí)現(xiàn)串口打?。?p>#include "stm8l15x.h"

#include "stdio.h"

#include "stm8_eval.h"

#include "stm8l15x_beep.h"

#include "delay.h"


#ifdef _RAISONANCE_

#define PUTCHAR_PROTOTYPE int putchar (char c)

#define GETCHAR_PROTOTYPE int getchar (void)

#elif defined (_COSMIC_)

#define PUTCHAR_PROTOTYPE char putchar (char c)

#define GETCHAR_PROTOTYPE char getchar (void)

#else /* _IAR_ */

#define PUTCHAR_PROTOTYPE int putchar (int c)

#define GETCHAR_PROTOTYPE int getchar (void)

#endif /* _RAISONANCE_ */


/************************************************************************************

  * @brief Retargets the C library printf function to the USART.

  * @param[in] c Character to send

  * @retval char Character sent

  * @par Required preconditions:

  * - None

 ************************************************************************************/

PUTCHAR_PROTOTYPE

{

  /* Write a character to the USART */

  USART_SendData8(EVAL_COM1, c);

  /* Loop until the end of transmission */

  while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET);


  return (c);  

}



/************************************************************************************

  * @brief Retargets the C library scanf function to the USART.

  * @param[in] None

  * @retval char Character to Read

  * @par Required preconditions:

  * - None

 ************************************************************************************/

GETCHAR_PROTOTYPE

{

  int c = 0;

  /* Loop until the Read data register flag is SET */

  while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_RXNE) == RESET);

   

  c = USART_ReceiveData8(EVAL_COM1);

  return (c);

}




/**************************************************************************

*  name: systemClockInit

*  param:

*    int:  NULL

*    out:  NULL

*  return: NULL

*  function: config systrm clock frequency

***************************************************************************/


void SystemClockInit(void)

{

  CLK_SYSCLKSourceSwitchCmd(ENABLE);// Select HSE as system clock source

  CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);

  CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_4); // system clock prescaler: 4

  while(CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI)

  {

  }

  

}


/**************************************************************************

*  name: UsartInit

*  param:

*    int:  NULL

*    out:  NULL

*  return: NULL

*  function: config and init uart

***************************************************************************/

void UsartInit(void)

{

  SYSCFG_REMAPDeInit();

  SYSCFG_REMAPPinConfig(REMAP_Pin_USART1TxRxPortC, ENABLE);    

  STM_EVAL_COMInit(COM1, (uint32_t)115200, USART_WordLength_8b, USART_StopBits_1,     

                  USART_Parity_No, (USART_Mode_TypeDef)(USART_Mode_Tx | USART_Mode_Rx));

  

  enableInterrupts();

}




/**************************************************************************

*  name: mian

*  param:

*    int:  NULL

*    out:  NULL

*  return: 0

*  function: program entry

***************************************************************************/

int main( void )

{

  

  SystemClockInit();

  UsartInit();

  

  while(1)

  {

      printf("hello world n");

      delay_ms(500);

  }

  

}


實(shí)用ST-LINK連接板和PC機(jī), 然后連接好串口;

到這里,一個(gè)簡(jiǎn)單的STM8單片機(jī)程序就搞定了

關(guān)鍵字:IAR  開(kāi)發(fā)  STM8 引用地址:IAR 開(kāi)發(fā)STM8 學(xué)習(xí)

上一篇:IAR for STM8 學(xué)習(xí)筆記(1)--數(shù)據(jù)類型
下一篇:IAR - IAR FOR STM8安裝

推薦閱讀

然2017年已然成為了過(guò)去時(shí),但過(guò)去一年里業(yè)內(nèi)發(fā)生的重大事件卻仍然歷歷在目,其中一些對(duì)日后產(chǎn)業(yè)的發(fā)展造成了巨大的影響,而另一些則大大提升了行業(yè)的活力——更多樣的選擇和優(yōu)秀的設(shè)計(jì)都將成為可能,這對(duì)消費(fèi)者和廠商來(lái)說(shuō)當(dāng)然都是極好的。??在這一年當(dāng)中,筆記本和臺(tái)式機(jī)方面都有著不小的革新,像是大幅改善游戲本使用體驗(yàn)的MAX-Q設(shè)計(jì)、第八代酷睿筆記...
作為一枚當(dāng)代的「社會(huì)人」我們的生活中早已離不開(kāi)智能手機(jī)在智能手機(jī)普及之前人們都在想:為什么手機(jī)需要上網(wǎng)不知不覺(jué),上網(wǎng)已是手機(jī)不可或缺的「另一半」從1886年第一臺(tái)汽車發(fā)明至今引擎驅(qū)動(dòng)汽車走過(guò)了130多年的歷史下一個(gè)百年,汽車將會(huì)如何發(fā)展電動(dòng)、智能、網(wǎng)聯(lián)將成為未來(lái)的方向車聯(lián)網(wǎng)將成為汽車大腦一樣存在的第二引擎原來(lái)車聯(lián)網(wǎng)將給汽車帶來(lái)這些想不...
如果想讓純電動(dòng)車普及,解決補(bǔ)能問(wèn)題是這個(gè)行業(yè)繞不過(guò)的坎。為此,特斯拉一直在最大化自營(yíng)超級(jí)充電站的數(shù)量。但目前,超充站所配備的第二代(下文簡(jiǎn)稱V2)超充樁功率普遍為120kW,車主想要完成一次從10%到90%的充電,快的話也需要花費(fèi)近50分鐘的時(shí)間,如果趕上旁邊有車分流,實(shí)際充電時(shí)間甚至?xí)丁]^長(zhǎng)的充電時(shí)間使特斯拉即便擁有比較廣的超充站布局,...
一款代號(hào)為諾基亞Quicksilver的神秘HMD Global智能手機(jī)已經(jīng)出現(xiàn)在基準(zhǔn)測(cè)試平臺(tái)Geekbench的網(wǎng)站上。該列表顯示,這款智能手機(jī)將配備6GB內(nèi)存,并運(yùn)行Android 11操作系統(tǒng)?! 〕酥?,諾基亞Quicksilver列表顯示,這款智能手機(jī)將采用工作頻率為1.8GHz的芯片組,但尚未命名。從得分來(lái)看,這款手機(jī)單核466分,多核1487分,似乎諾基亞Quicksilver可...

史海拾趣

小廣播
設(shè)計(jì)資源 培訓(xùn) 開(kāi)發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開(kāi)發(fā)圈

 
機(jī)器人開(kāi)發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved