stm32学习开发debug记录(2)

外部中断无法触发的可能原因

(1)未打开外部时钟AFIO;
(2)中断函数名有误;
(3)检查外部中断初始化与中断控制器初始化的语法语句,可能漏写或线路不匹配;
(4)中断函数触发方式错误(或端口输入设置出错)
可通过函数EXTI_GenerateSWInterrupt()生成中断检查配置情况。如果能正常进入中断函数,说明是硬件与接口的问题。(如HC-SR501电平不稳定,消抖以后可能无法触发中断。)
可用GPIO_ReadInputDataBit测试GPIO口的情况。

USART

需要对printf函数重定向才能向串口输出。具体分为需要设置Use MicroLIB和添加其他函数的两种方法,具体可参见野火和正点的教程

可能会报错:XXX.axf: Error: L6218E: Undefined symbol xxx (referred from xxxx.o).
出现这种错误的原因除了未引入头文件或路径未正确设置外,也可能是因为全局变量无法在build时顺利拓展至全局(很奇怪,必须在.c文件下重新进行声明才能使用在别的.h文件里定义的全局变量)。可在xxxx.o对应的.c文件下重新对变量/函数进行定义声明。

HC05

HC05模块蓝牙直接与电脑蓝牙连接不稳定(可能是驱动、协议或别的什么原因,在电脑上打开串口很难),最好是使用USB转TTL接口,在电脑上连接一个HC05模块进行收发。或在手机上下载串口调试软件,能够与蓝牙正常连接。

HC05/06模块的三种工作模式(这三种工作模式是HC05/06共有的,并且通过模块上的LED反映出来)

1.待连接模式 HC05:快速闪灯 HC06:快速闪灯

该模式下,若蓝牙模块被设置为从机,则等待其他设备连接,若为主机,就会搜寻可连接的设备

2.AT模式 HC05:慢速闪灯 HC06:快速闪灯、

该模式下,可以通过从串口发送AT指令,对蓝牙模块的名称,密码,波特率,主从机等属性进行设置,具体的AT指令此处不加以赘述,网上一查就有,需要注意的是HC05发送AT指令时必须以\r\n结尾,而HC06则不能以\r\n结尾,否则都会导致没有响应的错误出现

3.连接模式 HC05:长亮灯 HC06:长亮灯

已经成功与其他设备连接后进入的模式。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值