硬件平台:
轮趣科技F103C8T6核心板
问题描述:
在复现平衡小车的过程中,尝试读取编码器数据并在OLED上显示;调用OLED的API函数后发现无论如何都不显示。
问题解决:
仔细翻看,对比官方源码后,添加如下函数代码后成功显示。
在mian函数初始化部分添加:
JTAG_Set(JTAG_SWD_DISABLE);
JTAG_Set(SWD_ENABLE);
对应的宏定义:
#define JTAG_SWD_DISABLE 0X02
#define SWD_ENABLE 0X01
#define JTAG_SWD_ENABLE 0X00
对应的函数内容:
void JTAG_Set(u8 mode)
{
u32 temp;
temp=mode;
temp<<=25;
RCC->APB2ENR|=1<<0; //开启辅助时钟
AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]
AFIO->MAPR|=temp; //设置jtag模式
}
问题出现的原因:
OLED使用了A15,B3,B4,B5这四个IO,其中PB3,PB4为系统接口,需要进行以上设置才可以作为普通IO口使用。