OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子新作:阿波罗STM32F767&F429&探索者STM32F4开发板&赶快来下载资料哦。

查看: 1183|回复: 4

FreeRTOS的串口寄存器配置

[复制链接]

  离线 

7

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2017-2-23
在线时间
21 小时
发表于 2018-1-15 18:28:36 | 显示全部楼层 |阅读模式
20金钱
本人最近在学FreeRTOS,使用的是战舰V2.2版本。在移植的过程中,没按照原子哥的步骤,没移植sys、delay、usart文件夹,只是挂接了三个中断,修改了startup_stm32f10x_hd.s文件。但是在后来想用usart串口1了,由于之前看过原子哥的stm32的寄存器版本,就直接把寄存器版里的usart文件夹和sys.h文件添加进工程,修改了MY_NVIC_Init(6,0,USART1_IRQn,4)这个函数,把组2变成组4,优先级变成6。然后按照原子哥的教程代码,在主函数的xTaskCreate(start_task,.....)前添加初始化uart_init(72,115200),在task1_task()里面printf("task1 running!\r\n"),结果在串口调试助手里面输出的全是0。我知道是串口初始化有问题,或是时钟配置的不对,但是具体哪里不对就不清楚了,不知道哪位大神知道,小弟不吝赐教。。。

最佳答案

查看完整内容[请看2#楼]

问题解决了。是系统时钟没有初始化,在原子哥的玩转stm32寄存器版內,是原子哥自己实现的时钟配置函数,所以在startup_stm32f10x_hd.s文件中,没有SystemInit()函数。 而在FreeRTOS移植这本书中,在startup_stm32f10x_hd.s文件中,启动代码直接是从SystemInit()函数开始的,所以时钟是配置好的。而我在移植过程中,第一次运行代码时, 提示我没有SystemInit()这个函数,我直接在启动配置文件中删除了这行,所以才导致这个错误。
回复

使用道具 举报

  离线 

7

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2017-2-23
在线时间
21 小时
 楼主| 发表于 2018-1-15 18:28:37 | 显示全部楼层
问题解决了。是系统时钟没有初始化,在原子哥的玩转stm32寄存器版內,是原子哥自己实现的时钟配置函数,所以在startup_stm32f10x_hd.s文件中,没有SystemInit()函数。
而在FreeRTOS移植这本书中,在startup_stm32f10x_hd.s文件中,启动代码直接是从SystemInit()函数开始的,所以时钟是配置好的。而我在移植过程中,第一次运行代码时,
提示我没有SystemInit()这个函数,我直接在启动配置文件中删除了这行,所以才导致这个错误。
回复

使用道具 举报

  离线 

7

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2017-2-23
在线时间
21 小时
 楼主| 发表于 2018-1-15 18:40:10 | 显示全部楼层
这个是工程代码

lny-FreeRTOS - queue.zip

1.17 MB, 下载次数: 13

回复

使用道具 举报

  离线 

486

主题

9万

帖子

30

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
121742
金钱
121742
注册时间
2010-12-1
在线时间
986 小时
发表于 2018-1-16 01:19:16 | 显示全部楼层
帮顶
回复

使用道具 举报

  离线 

55

主题

6090

帖子

5

精华

资深版主

Rank: 8Rank: 8

积分
11974
金钱
11974
注册时间
2013-11-13
在线时间
1310 小时
发表于 2018-1-16 09:36:54 | 显示全部楼层
仿真查看系统时钟配置,检查时钟配置是否正常
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则




QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-2-24 00:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表
/* */