你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

查看: 3192|回复: 9

[STM32L476] 【NUCLEO-L476RG开发】FreeRTOS+LED_Toggle单任务

[复制链接]

8

主题

252

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-2-22
发表于 2015-11-14 00:07:56 | 显示全部楼层 |阅读模式
本帖最后由 fjjjnk1234 于 2015-11-14 00:12 编辑

之前都是用标准外设库开发STM32,这次的STM32L476本来也想用标准外设库,但是在ST官网上貌似没有,顺便看了一下F7系列的,也没有找到。感觉HAL库是一种趋势,有一种新事物代替旧事物的感觉。所以,只能紧跟时代潮流,学习一下HAL库,体验一下STM32CubeMX自动生成代码的功能。第一次使用STM32CubeMX生成一个FreeRTOS单任务的程序,感觉还挺方便的。记录一下过程。
NewProject
1.png
切换到Board Selector标签,板子类型选择Nucleo64MCU系列STM32L4,就出现NUCLEO-L476RG这个板子
2.png
OK
3.png
从这张图可以很清晰地看出板子上唯一的LED和按键分别接在PA5PC13,以及晶振和USART对应的引脚

没用到按键就先把PC13的状态Reset_State
4.png
使能FreeRTOS,进入Configuration标签
5.png
配置GPIO
6.png
配置FREERTOS
7.png
新建任务LED_TOGGLE
8.png

OK
Project->Settings
9.png
注意:一定要全英文路径,不然会出现如下错误
10.png
然后Project->Generate Code就生成相关的代码了
11.png
打开工程文件,填充LED_ Toggle任务函数
  1. /* LED_Toggle_Task function */
  2. void LED_Toggle_Task(void const * argument)
  3. {
  4.   /* USER CODE BEGIN LED_Toggle_Task */
  5.   /* Infinite loop */
  6.   for(;;)
  7.   {
  8.                 HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
  9.     osDelay(1000);
  10.   }
  11.   /* USER CODE END LED_Toggle_Task */
  12. }
复制代码
主函数的代码都是STM32 Cube生成好的,不需要修改,非常方便,这样一个简单的FreeRTOS单任务的程序就完成了
  1. int main(void)
  2. {

  3.   /* USER CODE BEGIN 1 */

  4.   /* USER CODE END 1 */

  5.   /* MCU Configuration----------------------------------------------------------*/

  6.   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  7.   HAL_Init();

  8.   /* Configure the system clock */
  9.   SystemClock_Config();

  10.   /* Initialize all configured peripherals */
  11.   MX_GPIO_Init();

  12.   /* USER CODE BEGIN 2 */

  13.   /* USER CODE END 2 */

  14.   /* USER CODE BEGIN RTOS_MUTEX */
  15.   /* add mutexes, ... */
  16.   /* USER CODE END RTOS_MUTEX */

  17.   /* USER CODE BEGIN RTOS_SEMAPHORES */
  18.   /* add semaphores, ... */
  19.   /* USER CODE END RTOS_SEMAPHORES */

  20.   /* USER CODE BEGIN RTOS_TIMERS */
  21.   /* start timers, add new ones, ... */
  22.   /* USER CODE END RTOS_TIMERS */

  23.   /* Create the thread(s) */
  24.   /* definition and creation of defaultTask */
  25.   osThreadDef(defaultTask, StartDefaultTask, osPriorityNormal, 0, 128);
  26.   defaultTaskHandle = osThreadCreate(osThread(defaultTask), NULL);

  27.   /* definition and creation of LED_TOGGLE */
  28.   osThreadDef(LED_TOGGLE, LED_Toggle_Task, osPriorityNormal, 0, 128);
  29.   LED_TOGGLEHandle = osThreadCreate(osThread(LED_TOGGLE), NULL);

  30.   /* USER CODE BEGIN RTOS_THREADS */
  31.   /* add threads, ... */
  32.   /* USER CODE END RTOS_THREADS */

  33.   /* USER CODE BEGIN RTOS_QUEUES */
  34.   /* add queues, ... */
  35.   /* USER CODE END RTOS_QUEUES */


  36.   /* Start scheduler */
  37.   osKernelStart();
  38.   
  39.   /* We should never get here as control is now taken by the scheduler */

  40.   /* Infinite loop */
  41.   /* USER CODE BEGIN WHILE */
  42.   while (1)
  43.   {
  44.   /* USER CODE END WHILE */

  45.   /* USER CODE BEGIN 3 */

  46.   }
  47.   /* USER CODE END 3 */

  48. }
复制代码
系统内核启动后,LED_Toggle的任务就开始不断执行
编译,下载后,复位,就能看到LED以0.5Hz的频率闪烁
IMAG0215.jpg

评分

参与人数 1ST金币 +15 收起 理由
沐紫 + 15

查看全部评分

回复

使用道具 举报

10

主题

1651

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-2-15
发表于 2015-11-14 09:41:41 | 显示全部楼层
这样的使用心得多多益善。
回复 支持 反对

使用道具 举报

47

主题

3404

回帖

30

蝴蝶豆

版主

最后登录
2020-12-7
发表于 2015-11-14 10:22:44 | 显示全部楼层
多谢分享,
回复 支持 反对

使用道具 举报

18

主题

668

回帖

0

蝴蝶豆

金牌会员

最后登录
2017-4-9
发表于 2015-11-14 10:34:53 | 显示全部楼层
多谢分享
回复 支持 反对

使用道具 举报

76

主题

5715

回帖

4

蝴蝶豆

论坛元老

最后登录
2020-10-15
发表于 2015-11-14 10:39:59 | 显示全部楼层
多谢分享 null - 副本 - 副本 - 副本.png null - 副本 - 副本 (3).png null - 副本 (2) - 副本.png null - 副本 (3).png null - 副本.png
回复 支持 反对

使用道具 举报

18

主题

271

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-3-16
发表于 2015-11-14 11:30:04 | 显示全部楼层
多谢分享
回复 支持 反对

使用道具 举报

8

主题

407

回帖

0

蝴蝶豆

高级会员

最后登录
2016-11-24
发表于 2015-11-14 11:41:33 | 显示全部楼层
期待楼主更高级应用的分享,不要浪费了这么高端的板子……
回复 支持 反对

使用道具 举报

93

主题

2449

回帖

4

蝴蝶豆

论坛元老

最后登录
2020-6-28
发表于 2015-11-14 13:47:48 | 显示全部楼层
谢谢分享  
回复 支持 反对

使用道具 举报

41

主题

2476

回帖

282

蝴蝶豆

论坛元老

最后登录
2020-12-8
发表于 2015-11-14 21:53:47 | 显示全部楼层
顶一下        
回复 支持 反对

使用道具 举报

0

主题

2

回帖

0

蝴蝶豆

新手上路

最后登录
2019-5-7
发表于 2019-4-16 10:07:23 | 显示全部楼层
多谢分享
回复 支持 反对

使用道具 举报

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版