应用主要分为两步,一是手机与蓝牙的通信,二是主从蓝牙的通信。
1,usb转ttl与一个蓝牙模块先接上线,在上电之前按住蓝牙按键,接上电后进入at指令模式,此时打开串口,选择串口(你连蓝牙的comx),选择波特率38400,打开串口,你会看到蓝牙指示灯由快闪进入慢闪就成功了。
先发AT (一定要勾选串口助手里的发送新行)返回ok,然后发复位指令,在确定名字,地址(记下来主从链接时要用),密码(主从密码一致),确定串口参数(主从一致),如115200,0,0
确定谁是主谁是从(1主0从)。
注意一点在绑定从蓝牙地址是要输入,而不是:如98,2,D214A1 不是98:2:D214A1,配对成功后拔下来即可。
一。手机与蓝牙通信。
蓝牙app的制作就看他的,在他的下一节中将发送的文本改成了数字,(如果你想看看她是否接受到了数字,那就把蓝牙接到usb转ttl上,选择该串口,注意这个软件发送的数字是16进制的,串口助手要勾选上,当你按下蓝牙中的按键时就可以从串口助手中看到了)或者自己下个蓝牙调试的app。
小车配置:
tim1与tim8的配置相同,tim2是之前配置超声波的,tim3没用。
程序部分
这个数用来接收数据
按键标志位
该打开的都打开
主程序
接收中断回调函数。
这样就差不多了。
二。主从蓝牙通信可以在一块板子上使用两个串口,也可以在两块板子上使用两个串口,第一种我没做理论上可以,我以第二种为例,
配置两个按键,led,打开串口。这里我用的串口三其余的串口可以不打开
定时器,外部晶振等我就不说了 ,现在让主蓝牙连接到串口相应的引脚上(注意tx接rx,rx接tx) 5v
生成工程
第一张图重定义,可以发送printf函数本次用不到,但我发现在int fputc这个函数里usart(x),不同的x好像是不同的串口可以向串口助手里发信息,比如说这里你填了1,后面你用串口2接收到的信息不会显示在串口里,这点注意。
第二张图,因为我后面的小车程序需要16进制的数字才能让他跑起来,这里用这种形式才可以如果用uint8_t aaa[1]={1},或者uint8_t aaa[1]={"1"},都不行好像,这样好像都是文字1,不是数字1,但我还不太确定。
第三张图是while里主函数 按一个键串口三就发送一个信息(此时串口接收不到,除非用接收中断应该才可以)。
此时下载程序,按下第一个32板子按键就可以看到第二个板子的小车在跑了。