OLED、编码器、keil printf相关问题

文章讨论了OLED配置更改的必要性,解决OLED不亮的问题,涉及编码器的接线与功能,以及在Keil中使用printf遇到的问题和解决方法。
摘要由CSDN通过智能技术生成

一、OLED更改配置

OLED的初始化配置更改过后,需要重新上电,才能有变化(指的是拔掉VCC再插上,不是按复位键)

二、OLED不亮

在用江科大的初始化代码的时候,有时候OLED会不亮或乱码

因为有些OLED模块出厂的时候SCL和SDA脚没有上拉电阻,导致电流不足

而江科大配置两脚为开漏输出

应该修改配置为推挽输出

(后续又不亮了。自己加了上拉电阻也不亮,待补充。。。)

三、手动旋转编码器

五脚手动编码器,接线图

引脚定义:

1.EC11常见额定电压是5V,实测3.3V也可以驱动,但不建议使用3.3V (会出现杂波阻容是为了进行上拉输出和硬件滤波 

2.A,B为旋转信息的输出 (两相)

3.C为接地

4.SW为内部的开关,可以当作轻触按键使用 (注意加软件滤波)

5.每转动一格,AB相会出现一个持续10-150ms的低电平,默认为高电平状态

6.顺时针转动时A相的低电平会比B相提前逆时针转动时A相的低电平会比B相延后 

参考:5.旋转编码器 - 哔哩哔哩 (bilibili.com)

四、keil 中使用printf

我在移植程序的时候遇到

正常在keil中使用printf的时候,如果没有重定向,printf输出是没有方向的,因此会出现错误,程序会卡死在 BX R0(汇编卡死在 BEAB BKPT 0xAB)处

BKPT:断点指令用于软件调试;它使处理器停止执行正常指令(使处理器中止预取指)而进入相应的调试程序。(仅用于v5T体系)

解决办法是魔术棒中勾选Use MicroLIB(红框)

表示使用微库,将printf默认定向到串口1,详细了解可参考:
KeilMDK配置项中Use MicroLIB-CSDN博客

KEIL工具之半主机模式_keil半主机模式 serial window-CSDN博客

使用rt-thread,使用keil调试,发现程序会停留在BKPT 0xAB_bkpt keil-CSDN博客

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在开发过程中,printf函数是一种常用的输出日志信息的方式,可以帮助快速定位问题的原因。在单片机开发中,如果要使用printf函数,需要先对fputc函数进行重定向。这样,printf函数会先将用户字符串格式化,然后调用fputc函数逐个处理字符串中的字符,如果fputc函数被定义为串口输出函数,则printf最终会将字符串通过串口输出。这种方式是最常见的,但也可以通过适配不同的fputc函数来实现通过其他通信接口(比如SPI、CAN或屏幕)输出字符串。然而,从通信接口输出会比较耗时,不适用于一些实时性要求较高的系统。为了解决实时性问题,一些开发者发明了将fputc重定向输出到RAM,然后利用调试器从RAM中读取固定格式的数据来实现快速输出日志信息的方法。 在KEIL中,printf函数可以使用SEGGER的RTT组件来实现。RTT组件提供了SEGGER_RTT_printf函数,可以用于打印日志信息。这个函数需要指定要打印的字符串以及其他参数,在调用时会将格式化后的字符串通过fputc函数输出。然而,需要注意的是,SEGGER_RTT_printf函数不支持打印中文和浮点数。如果需要打印中文和浮点数,可以使用printf函数,并在fputc函数中调用该函数来实现。 另外,有人使用72MHz的stm32f105芯片配合KEIL的Event Recorder中间件进行打印测试,发现使用SEGGER的RTT组件的printf函数会比Event Recorder中间件的printf函数速度更快一些。这可能是因为Event Recorder中间件使用了printf函数,而SEGGER的RTT组件在精简了printf函数的基础上进行了优化,不支持浮点数和中文,从而提高了速度。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [调试笔记--keil printf小技巧](https://blog.csdn.net/weixin_42378319/article/details/117920784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值