99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

FREERTOS-1-移植

1、參考

安富萊FREERTOS教程(F103)、安富萊F4系列BSP庫、戰(zhàn)艦原理圖

相關(guān)產(chǎn)出:如何添加HA庫相關(guān).C.H文件

2、硬件平臺

正點原子-戰(zhàn)艦平臺,keil。

3、移植目標

將F4的HAL,BSP代碼庫移植到F1中。同時完成FreeRTOS移植,并通過串口將FreeRTOS的線程運行狀態(tài)通過串口打印出來。

4、移植過程

通過CUbemx軟件創(chuàng)建F103標準模板文件,通過《安富萊FREERTOS教程(F103)》、安富萊F103FREE例程將相關(guān)源碼進行復制,實現(xiàn)FreeROTS移植。移植完成之后,通過設置GPIO引角點亮LED燈,檢測移植是否完成。(備注:本次所使用的代碼,在GPIO外設上使用的BSP庫,也可以不使用直接使用HAL庫在線程里面控制)

有了模板之后,通過參考《安富萊F4系列用戶手冊》,安富萊F4BSP庫代碼,將BSP庫移植到戰(zhàn)艦開發(fā)板中,在移植過程中主要修改一下內(nèi)容:

1、key相關(guān),同時LED文件也需要相關(guān)的修改,和key。c文件差不多,關(guān)于串口文件,只需要將文件移植過去之后,修改至編譯通過即可。

#define HARD_KEY_NUM	    1	   				/* 實體按鍵個數(shù) */
#define KEY_COUNT   	 	(HARD_KEY_NUM + 0)	/* 4個獨立建 + 2個組合按鍵 */

/* 使能GPIO時鐘 */
#define ALL_KEY_GPIO_CLK_ENABLE() {	\
		__HAL_RCC_GPIOA_CLK_ENABLE();	\
		__HAL_RCC_GPIOE_CLK_ENABLE();	\
	};

/* GPIO和PIN定義 */
static const X_GPIO_T s_gpio_list[HARD_KEY_NUM] = {
//	{GPIOE, GPIO_PIN_2,  0},	/* K1 */
	{GPIOE, GPIO_PIN_3,  0},	/* K2 */
//	{GPIOE, GPIO_PIN_4,  0},	/* K3 */
//	{GPIOA, GPIO_PIN_0,  1},	/* K4 */	
};	

/*一下需要注意一下,安富萊在板子上添加了上拉電阻,但是戰(zhàn)艦的板子沒有添加,在按鍵初始化的時候,需要根據(jù)實際情況設置上拉和下拉*/
static void bsp_InitKeyHard(void)
{	
	GPIO_InitTypeDef gpio_init;
	uint8_t i;

	/* 第1步:打開GPIO時鐘 */
	ALL_KEY_GPIO_CLK_ENABLE();
	
	/* 第2步:配置所有的按鍵GPIO為浮動輸入模式(實際上CPU復位后就是輸入狀態(tài)) */
	gpio_init.Mode = GPIO_MODE_INPUT;   			/* 設置輸入 */
	gpio_init.Pull = GPIO_PULLUP;                 /* 上下拉電阻不使能 */
	gpio_init.Speed = GPIO_SPEED_FREQ_HIGH;  /* GPIO速度等級 */
	
	for (i = 0; i < HARD_KEY_NUM; i++)
	{
		gpio_init.Pin = s_gpio_list[i].pin;
		HAL_GPIO_Init(s_gpio_list[i].gpio, &gpio_init);	
	}
	
//	gpio_init.Pull = GPIO_PULLDOWN;                 /* 上下拉電阻不使能 */
//	gpio_init.Pin = s_gpio_list[3].pin;
//	HAL_GPIO_Init(s_gpio_list[3].gpio, &gpio_init);
	
}

2、定時器相關(guān),在系統(tǒng)進行監(jiān)測線程的時候需要一個,更短時間間隔的計數(shù),在這里使用定時器實現(xiàn)。在bsp_timer_pwm.c文件只使用到了bsp_SetTIMforInt();該函數(shù),在編譯時會有報錯,將報錯注釋掉即可。同時編寫相關(guān)的中斷函數(shù),實現(xiàn)ulHighFrequencyTimerTicks的計數(shù)。

/*
*********************************************************************************************************
*	函 數(shù) 名: vSetupTimerTest
*	功能說明: 創(chuàng)建定時器
*	形    參: 無
*	返 回 值: 無
*********************************************************************************************************
*/
void vSetupSysInfoTest(void)
{
	bsp_SetTIMforInt(TIM6, timerINTERRUPT_FREQUENCY, timerHIGHEST_PRIORITY, 0);
}

/*
*********************************************************************************************************
*	函 數(shù) 名: TIM6_IRQHandler
*	功能說明: TIM6中斷服務程序。
*	形    參: 無
*	返 回 值: 無
*********************************************************************************************************
*/
void TIM6_IRQHandler( void )
{
	if((TIM6->SR & TIM_IT_UPDATE)!= RESET)
	{
		ulHighFrequencyTimerTicks++;
		TIM6->SR = (uint16_t)~TIM_IT_UPDATE;
	}
}

5、最后效果

聲明:本內(nèi)容為作者獨立觀點,不代表電子星球立場。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯的朋友,別忘了一鍵三連哦!
贊 2
收藏 2
關(guān)注 11
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 亚洲中文久久精品81 | wwwwww日本 | 性欧美人与zozoxxxx视频 | 夜福利视频 | 国产精品久久久久久久毛片动漫 | 久久91久久久久麻豆精品 | 欧美精品福利视频 | 黄色免费日本 | 熟妇人妻无乱码中文字幕 | 久久人人爽天天玩人人妻精品 | 97视频亚洲 | 国产成人精品午夜2022 | 久久er综合 | 成人片免费看 | 免费一区二区在线观看 | 成人毛片在线 | av自拍偷拍| 欧美精品久久久久 | 一区二区三区四区影院 | 四虎影视www | 夜夜躁狠狠躁日日躁视频 | 日韩国产在线播放 | 99免费在线视频观看 | 狠狠色狠狠色综合网 | 欧美日韩国产限制 | 麻豆人妻无码性色av专区 | 99久久免费国产精精品 | 美女大胆作爱全过程 | 最近中文字幕免费MV在线视频 | 亚色视频在线观看 | 欧美日韩国产成人高清视 | 国产精品动漫一区二区 | 麻豆av免费网站 | 不卡av中文字幕手机看 | 久久国产视频网 | 综合自拍偷拍 | 91看片资源 | 中文字幕久精品免费视频 | 日韩人妻无码喷潮中出 | 日韩网站视频 | 日韩精品中文有码 |