标题:
STM32F103C8T6最小系统板移植cUOSII可运行源程序资料
[打印本页]
作者:
417868821
时间:
2020-11-12 21:11
标题:
STM32F103C8T6最小系统板移植cUOSII可运行源程序资料
本人小白一名,从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
作者:
417868821
时间:
2020-11-12 21:11
自顶一下
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1