OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5991|回复: 4

FreeRTOS的串口寄存器配置

[复制链接]

7

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
158
金钱
158
注册时间
2017-2-23
在线时间
24 小时
发表于 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()这个函数,我直接在启动配置文件中删除了这行,所以才导致这个错误。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

18

帖子

0

精华

初级会员

Rank: 2

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

使用道具 举报

7

主题

18

帖子

0

精华

初级会员

Rank: 2

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

lny-FreeRTOS - queue.zip

1.17 MB, 下载次数: 82

回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

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

使用道具 举报

88

主题

7377

帖子

5

精华

资深版主

Rank: 8Rank: 8

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

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-1-31 21:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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