本文來源電子發(fā)燒友社區(qū),作者:愛的世界abc, 帖子地址:https://bbs.elecfans.com/jishu_2297433_1_1.html
上一步點燈前提https://bbs.elecfans.com/jishu_2296576_1_1.html工作已經做好了,這次開始點燈了.
點燈程序如下(在官方提供的demo基礎上直接使用): 會玩stm32的真的可以直接玩這個了,和stm32差不多.
/*******************************************************************************
*
- 代碼許可和免責信息
- 武漢力源半導體有限公司授予您使用所有編程代碼示例的非專屬的版權許可,您可以由此
- 生成根據您的特定需要而定制的相似功能。根據不能被排除的任何法定保證,武漢力源半
- 導體有限公司及其程序開發(fā)商和供應商對程序或技術支持(如果有)不提供任何明示或暗
- 含的保證或條件,包括但不限于暗含的有關適銷性、適用于某種特定用途和非侵權的保證
- 或條件。
- 無論何種情形,武漢力源半導體有限公司及其程序開發(fā)商或供應商均不對下列各項負責,
- 即使被告知其發(fā)生的可能性時,也是如此:數據的丟失或損壞;直接的、特別的、附帶的
- 或間接的損害,或任何后果性經濟損害;或利潤、業(yè)務、收入、商譽或預期可節(jié)省金額的
- 損失。
- 某些司法轄區(qū)不允許對直接的、附帶的或后果性的損害有任何的排除或限制,因此某些或
- 全部上述排除或限制可能并不適用于您。
*/
/
-
Include files
/
#include "main.h"
/ -
Local pre-processor symbols/macros ('#define')
******************************************************************************/
/******************************************************************************
-
Global variable definitions (declared in header file with 'extern')
******************************************************************************/
/******************************************************************************
-
Local type definitions ('typedef')
/
typedef enum {FAILED = 0, PASSED = !FAILED} TestStatus;
/ -
Local function prototypes ('static')
******************************************************************************/
void RCC_Configuration(void);
void GPIO_Configuration(void);
void NVIC_Configuration(void);
/******************************************************************************
-
Local variable definitions ('static') *
******************************************************************************/
//KEY
volatile uint8_t gKey1Status,gKey2Status; /* set to 1 after User Button interrupt */
/******************************************************************************
-
Local pre-processor symbols/macros ('#define')
******************************************************************************/
/*****************************************************************************
-
Function implementation - global ('extern') and local ('static')
******************************************************************************/
/**
** brief Main function of project
**
** return uint32_t return value, if needed
**
** SPI FLASH(W25Q64)
** Success LED1亮
** Error LED2亮
**
** 引腳連接
** SPI SCK -- FLASH CLK
** SPI MOSI -- FLASH DI
** SPI MISO -- FLASH DO
** SPI CS -- FLASH NCS
**
******************************************************************************/
int32_t main(void)
{
//配置RCC
RCC_Configuration();
InitTick( 24000000 ); //24000000
//配置GPIO
GPIO_Configuration();
/* NVIC Configuration */
NVIC_Configuration();
gKey1Status = 0;
gKey2Status = 0;
while(1)
{
LED1_ON;
SysTickDelay(100); //200ms.
LED1_OFF;
SysTickDelay(100); //200ms.
//
LED2_ON;
SysTickDelay(100); //200ms.
LED2_OFF;
SysTickDelay(100); //200ms.
}
}
/**
- [url=home.php?mod=space&uid=2666770]@Brief[/url] 配置RCC
*/
void RCC_Configuration(void)
{
//SYSCLK = HSI = 24MHz = HCLK = PCLK
RCC_HSI_Enable(RCC_HSIOSC_DIV2);
/* 使能所有外設時鐘*/
CW_SYSCTRL->AHBEN = 0xFFFFFFFF;
CW_SYSCTRL->APBEN1 = 0xFFFFFFFF;
CW_SYSCTRL->APBEN2 = 0xFFFFFFFF;
}
/**
- [url=home.php?mod=space&uid=2666770]@Brief[/url] 配置GPIO
*/
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
//LED1
GPIO_InitStructure.Pins = LED1_GPIO_PIN;
GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStructure.IT = GPIO_IT_NONE;
GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);
//LED2
GPIO_InitStructure.Pins = LED2_GPIO_PIN;
GPIO_InitStructure.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStructure.IT = GPIO_IT_NONE;
GPIO_Init(LED2_GPIO_PORT, &GPIO_InitStructure);
//KEY1
GPIO_InitStructure.Pins = KEY1_GPIO_PIN;
GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
GPIO_InitStructure.IT = GPIO_IT_FALLING;
GPIO_Init(KEY1_GPIO_PORT, &GPIO_InitStructure);
//KEY2
GPIO_InitStructure.Pins = KEY2_GPIO_PIN;
GPIO_InitStructure.Mode = GPIO_MODE_INPUT_PULLUP;
GPIO_InitStructure.IT = GPIO_IT_FALLING;
GPIO_Init(KEY2_GPIO_PORT, &GPIO_InitStructure);
//LED滅
LED1_ON;
LED2_OFF;
}
/**
- @brief Configure the nested vectored interrupt controller.
- [url=home.php?mod=space&uid=3142012]@param[/url] None
-
@retval None
*/
void NVIC_Configuration(void)
{
__disable_irq();
GPIOB_INTFLAG_CLR( 0xFFFF ); //clear GPIOB ALL INT FLAG
NVIC_EnableIRQ(GPIOB_IRQn);
__enable_irq();
}
/******************************************************************************
-
EOF (not truncated)
****************************************************************************/
#ifdef USE_FULL_ASSERT
/ - @brief Reports the name of the source file and the source line number
-
where the assert_param error has occurred.
- [url=home.php?mod=space&uid=3142012]@param[/url] file: pointer to the source file name
- @param line: assert_param error line source number
-
@retval None
*/
void assert_failed(uint8_tfile, uint32_t line)
{
/USER CODE BEGIN 6/
/User can add his own implementation to report the file name and line number,
tex: printf("Wrong parameters value: file %s on line %drn", file, line)/
/USER CODE END 6/
}
#endif /USE_FULL_ASSERT */
然后編譯 0錯誤0警告 ok
把板子通過燒錄工具與電腦連接并進行程序燒錄:
我是用的SWD方式,用到的引腳就4個,分別是ST Link V2上的 vcc、gnd、DIO、CLK這4個引腳。
開發(fā)板上的引腳和ST Link上的引腳對應
最后接線圖
然后點MDK上的下載按鈕進行程序下載。
下一步看
https://bbs.elecfans.com/jishu_2297427_1_1.html
【武漢芯源CW32F003FXSTARTKI開發(fā)板免費試用體驗】讓芯片運行用戶程序(從flash啟動)
附上開發(fā)板體驗視頻,詳細見作者原帖子。
-
開發(fā)板試用
+關注
關注
3文章
301瀏覽量
2092 -
CW32
+關注
關注
1文章
203瀏覽量
628
發(fā)布評論請先 登錄
相關推薦
評論