本人小白一名,從2年前學習STM32開發板,一路不是大坑就是小坑,在網絡資源中不知找了多少例程。但是讓小成本的STM32F103C8T6最小系統板運行真的很少。移植cUOSII和上傳這份資料是為了跟大家一起學習。
資料中STM32F103C8T6單片機最小系統板
1.jpg (112.99 KB, 下載次數: 55)
下載附件
2020-11-12 21:18 上傳
如果系統板的測試LED燈不是PC13端口請自行更換。
單片機源程序如下:
- /*實驗
- */
- #include "stm32f10x.h"
- #include "stm32f10x_conf.h"
- #include "ucos_ii.h"
- #include "lcd.h"
- #include "key.h"
- #include "lcd_init.h"
- #include "pic.h"
- #define TASK_STK_SIZE 256 //定義堆棧長度(128字節)
- OS_STK LED0_TASK_STK[TASK_STK_SIZE];
- OS_STK LED1_TASK_STK[TASK_STK_SIZE]; /*定義兩個任務的堆棧數組*/
- #define ON 0
- #define OFF 1
- #define LED0(a) if (a) \
- GPIO_SetBits(GPIOC,GPIO_Pin_13);\
- else \
- GPIO_ResetBits(GPIOC,GPIO_Pin_13)
-
- //#define LED1(a) if (a) \
- // GPIO_SetBits(GPIOA,GPIO_Pin_6);\
- // else \
- // GPIO_ResetBits(GPIOA,GPIO_Pin_6) /*宏定義兩個選擇函數*/
- void GPIO_configuration(void) //配置I/O口
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE); /*開啟GPIOA的外設時鐘*/
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13; /*選擇要控制的GPIOA引腳*/
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*設置引腳模式為通用推挽輸出*/
-
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOC, &GPIO_InitStructure); /*調用庫函數,初始化GPIOA*/
-
- /* 關閉led0燈 */
- GPIO_SetBits(GPIOC, GPIO_Pin_13);
- }
- void BSP_Init(void) //硬件配置
- {
- GPIO_configuration(); /* GPIO端口初始化 */
- }
- void SysTick_init(void) /* SysTick_init 配置SysTick定時器 */
- {
- SysTick_Config(SystemCoreClock/OS_TICKS_PER_SEC); //初始化并使能SysTick定時器
- }
- void Task_LED0(void *p_arg)
- {
- (void)p_arg; // 'p_arg' 并沒有用到,防止編譯器提示警告
- SysTick_init(); //在第一個任務中開啟系統時鐘
-
-
- while (1)
- {
- LED0( ON );
- OSTimeDlyHMSM(0, 0,0,100);
- LED0( OFF);
- OSTimeDlyHMSM(0, 0,0,100);
- }
- }
- void Task_LED1(void *p_arg)
- {
- u8 i,j;
- float t=0;
- (void)p_arg; // 'p_arg' 并沒有用到,防止編譯器提示警告
- while (1)
- {
- LCD_ShowChinese(0,0,"中景園電子",RED,WHITE,32,0);
- LCD_ShowString(0,40,"LCD_W:",RED,WHITE,16,0);
- LCD_ShowIntNum(48,40,LCD_W,3,RED,WHITE,16);
- LCD_ShowString(80,40,"LCD_H:",RED,WHITE,16,0);
- LCD_ShowIntNum(128,40,LCD_H,3,RED,WHITE,16);
- LCD_ShowString(80,40,"LCD_H:",RED,WHITE,16,0);
- LCD_ShowString(0,70,"Increaseing Nun:",RED,WHITE,16,0);
- LCD_ShowFloatNum1(128,70,t,4,RED,WHITE,16);
- t+=0.11;
- for(j=0;j<3;j++)
- {
- for(i=0;i<6;i++)
- {
- LCD_ShowPicture(40*i,120+j*40,40,40,gImage_1);
- }
- }
- }
- }
- int main(void)
- {
- BSP_Init();
-
- LCD_Init();//LCD初始化
- LCD_Fill(0,0,LCD_W,LCD_H,WHITE);
-
- OSInit();
- OSTaskCreate(Task_LED0,(void *)0, &LED0_TASK_STK[TASK_STK_SIZE-1], 4);
- OSTaskCreate(Task_LED1,(void *)0, &LED1_TASK_STK[TASK_STK_SIZE-1], 5);
- OSStart();
- return 0;
- }
復制代碼
所有資料51hei提供下載:
STM32_template.7z
(281.14 KB, 下載次數: 19)
2020-11-12 21:20 上傳
點擊文件名下載附件
內置中景園1.3LCD屏顯示 下載積分: 黑幣 -5
|