按说,串口调试应该是很简略的,可就偏偏困扰了我将近两个周的时间,束手无策,接纳GPS模块发来的数据一向不对,今日早上经过GPS例程与我编写的简略程序一比照,发现USART3初始化不一致,
例程是uart_init(84,115200);usart3_init(42,38400);
而我的初始化是uart_init(84,115200);usart3_init(84,38400);
USART1与USART3,前者挂在APB2总线(高速总线)下,最大时钟是84MHz,后者挂在APB1总线(低速总线)下最大时钟是42MHz。所以usart3_init初始化参数中设置为84是过错的,所以数据接纳不正确。
所以时钟在ARM-微控制器中很重要,在运用某外设时,一定要搞清楚其时钟装备及设置办法。所以这也是在调试片上外设驱动程序的所必先处理的。
该问题的处理,首要由于我一向都很上心,时间测验用各种办法处理问题,尽管走了一些弯路,可是测验各种处理办法,总有一条路会走通。这才是该问题处理过程中除却技能经历外,所收成的最有价值的东西,这是办法论的领域。