碰到这个问题,好奇葩的,望大神指点12
请教问题 关于STM32 UART
问题,如下,
在初始化UART的时候,发现USART的波特率寄存器,一致为0,写不进去,后来一步步的跟踪调试发现如下情况
调用USART_Init 这个函数在初始化的时候
在USART_Init 下有这么RCC_GetClocksFreq一个函数,是计算时钟频率的,
在RCC_GetClocksFreq 这个函数下,有一个,关于时钟的频率表
APBAHBPrescTable
它是静态表,初始化值如下
这个值是官方给的,
而我在跟踪调试的时候
发现
APBAHBPrescTable 值变成这样了,是啥情况,
这个工程代码里面,用到了FREERTOS,这个系统
请教???!!!
编译结果
工程文件上传了,
,针对这个问题,我仿真用了原子的代码,发现初始化STM32 的USART1完全没问题,
望有知道解决办法的人指点下
这个是我今天碰到的第二个问题,第一个问题是上午碰到的,也是这个工程加了FREERTOS的,在加了文件系统之后,发现无法进行仿真,其现象如下:
跟踪启动文件的
; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
这部分代码,发现 __main的地址,是0X08000130
而我在主工程里面发现 main函数的地址 是,0x08002dfe,
发现两个地址,对不上号,所以一直无法进行仿真,
后来,根据某位大神的建议,对于启动代码,修改如下
EXPORT Reset_Handler [WEAK]
IMPORT main
;LDR R0, = SystemInit_ExtMemCtl ; initialize external memory controller
;BLX R0
;LDR R1, = __initial_sp ; restore original stack pointer
;MSR MSP, R1
LDR R0, =main
BX R0
ENDP
这样修改之后,就能仿真了,
希望我碰到的这个问题,对以后的朋友有帮助,
|