说明
拿到开发板(N32G45XVL-STB)首先应该先点灯,开发板上有三颗用户LED灯,好在已经点亮了。其中PB4口的led灯一直微量,无法控制,暂不清楚哪里有问题。本篇暂时不纠结led灯的问题,说说串口问题。
详细描述
本次使用了USB调试口自带的串口1(PA9,PA10),程序编写参照官方例程,没什么问题,毕竟 N32的库还是和经典的ST标准库非常相似的。
正常的打印输出也没什么问题,


因为usb口毕竟是调试口,所以希望让串口支持printf,这样在后续调试过程中会更方便,于是就对串口做了重定向:

MDK配置里勾选micro lib:

编译发现报错,错误提示有2个,当时没有截图,大概意思如下:
Undefined symbol __use_two_region_memory
Undefined symbol __initial_sp
通过半个多小时的研究和查找资料,最后发现只需要将启动文件.s里的这两处先注释掉,编译,再取消注释,再编译就可以解决,太神奇了。
详细步骤:
1、注释掉两行

2、编译
不会报错
3、取消注释

4、再次编译
不会报错
这时候再去调用printf打印消息,就非常完美
关于这个问题,不知道是什么原因,可能是MDK版本问题,需要注意。
|