STM32103-OLED不显示的原因

硬件平台:

        轮趣科技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口使用。

参考:

(2条消息) STM32之JTAG、SWD模式_weixin_30721899的博客-CSDN博客

  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
基于STM32F103和OLED的波形显示是一种通过STM32F103微控制器驱动OLED屏幕显示波形的应用。STM32F103是一款基于ARM Cortex-M3内核的单片机,具有丰富的外设资源,包括GPIO、定时器、SPI等。OLED(有机发光二极管)是一种具有自发光和高对比度特点的显示技术。 首先,我们需要将STM32F103与OLED连接起来。通过SPI接口或I2C接口连接STM32F103和OLED屏幕。然后,在STM32F103的程序中,我们需要配置SPI或I2C的相关寄存器,设置通信参数和时钟频率,以确保STM32F103能够正确地与OLED通信。 接下来,我们需要准备波形数据。可以通过STM32F103的ADC模块进行模拟信号采样,或者通过其他方式获取数字化的波形数据。将获取的波形数据存储在STM32F103的存储器中,例如数组或缓冲区。 然后,在STM32F103的程序中,我们需要编写相应的代码来读取波形数据,并将其发送给OLED屏幕进行显示。根据OLED的驱动程序,我们可以通过SPI或I2C发送命令和数据来控制OLED显示。通过逐点方式,将波形数据发送给OLED,以在屏幕上显示出波形。 为了实时显示波形,我们可以使用定时器中断来定时刷新屏幕上的波形数据。在每个定时器中断中,我们可以更新屏幕的显示,将新的波形数据发送给OLED进行更新。 此外,为了更好地显示波形,我们可以添加一些图形化的界面元素,例如坐标轴、刻度线等,以增强用户的可视化体验。 总而言之,基于STM32F103和OLED的波形显示是一种通过STM32F103微控制器驱动OLED屏幕显示波形的应用。通过合理的硬件连接和程序设计,我们可以实现波形的实时显示,并提供更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值