| 
 一、前言 
   
 板子拿到手了,上电测试了一下感觉非常好。外形精致细腻,漂亮! 
 
 
   
 二、rtthread多线程测试 
   
 1、首先去 rtthread官网下载一个RT-Thread 完整版 ,点击打开该文件夹,再打开bsp这个文件夹; 
 2、在bsp文件夹内找到mm32l07x,点击打开,里边有keil和IAR的工程,我用的是Keil的
 
 
 
 3、打开Keil之后 在工程中打开main.c在这里绘制代码,创建线程; 
 #include<rtthread.h>#include <rtdevice.h>
 #include "HAL_device.h"
 
 /* 定义线程控制块 */
 static rt_thread_t led1_thread = RT_NULL;
 static rt_thread_t led2_thread = RT_NULL;
 
 static void led1_thread_entry(void* parameter);
 static void led2_thread_entry(void* parameter);
 
 /********************************************************************************************************
 * led_init(void)
 ********************************************************************************************************/
 void led_init(void)
 {
 GPIO_InitTypeDef GPIO_InitStructure;
 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
 GPIO_Init(GPIOA, &GPIO_InitStructure);
 
 RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
 GPIO_Init(GPIOB, &GPIO_InitStructure);
 }
 
 int main(void)
 {
 rt_kprintf("RTT实验!\n");
 rt_kprintf("\n");
 led_init();
 /* 创建一个线程 */
 led1_thread = /* 线程控制块指针 */
 rt_thread_create( "led1", /* 线程名字 */
 led1_thread_entry, /* 线程入口函数 */
 RT_NULL, /* 线程入口函数参数 */
 512, /* 线程栈大小 */
 1, /* 线程的优先级 */
 20); /* 线程时间片 */
 
 /* 启动线程,开启调度 */
 if (led1_thread != RT_NULL)
 rt_thread_startup(led1_thread);
 else
 return -1;
 
 led2_thread = /* 线程控制块指针 */
 rt_thread_create( "led2", /* 线程名字 */
 led2_thread_entry, /* 线程入口函数 */
 RT_NULL, /* 线程入口函数参数 */
 512, /* 线程栈大小 */
 2, /* 线程的优先级 */
 20); /* 线程时间片 */
 
 /* 启动线程,开启调度 */
 if (led2_thread != RT_NULL)
 rt_thread_startup(led2_thread);
 else
 return -1;
 
 }
 
 /**********线程一***********/
 static void led1_thread_entry(void* parameter)
 {
 int count = 1;
 while (count++)
 {
 rt_kprintf("线程一:");
 rt_kprintf("led1!\n");
 GPIO_SetBits(GPIOA, GPIO_Pin_15);
 rt_thread_mdelay(500);
 GPIO_ResetBits(GPIOA, GPIO_Pin_15);
 rt_thread_mdelay(500);
 }
 }
 
 /**********线程二***********/
 static void led2_thread_entry(void* parameter)
 {
 int count = 1;
 while (count++)
 {
 rt_kprintf("线程二:");
 rt_kprintf("led2!\n");
 GPIO_SetBits(GPIOB, GPIO_Pin_3);
 rt_thread_mdelay(500);
 GPIO_ResetBits(GPIOB, GPIO_Pin_3);
 rt_thread_mdelay(500);
 }
 }
 
 
 
 
 
 4、测试现象; 
 
 
 两个LED同时闪烁。 
 本想放图片的,由于字数限制修修改改最后把图片全删了 才发了出来
  。 
 
 
 |