目录

  • 吹水
  • 硬件平台
  • 工程代码
    • main.c
    • delay.c
    • delay.h
    • usart.c
    • usart.h
    • led.c
    • led.h

吹水

写了快半年go语言吧,毕业后还是打算从事嵌入式,重新捡起来,调这个我犯了个很睿智的问题,调了两天才发现!就是配置串口相关的参数!一定要配置对!开始我通过串口和ld3320连接,有数据传输,32的串口也能接收到电脑发的数据,但是两个连起来就是拿不到数据,最后洗澡的时候才想起来ld3320给的波特率不是115200而是9600。

ld3320那边的程序如何修改就不贴了,网上蛮多的。

硬件平台


工程代码

ld3320连接USART1,通过透传的方式将获取到的数据通过USART2打印出来

main.c

#include "stm32f10x.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "led.h"
#include "usart.h"
#include "delay.h"int main()
{Led_init();usart1_init();usart2_init();initSysTick();printf("main start!");GPIO_ResetBits(GPIOC, GPIO_Pin_13);delay_ms(300);GPIO_SetBits(GPIOC, GPIO_Pin_13);
}//串口中断
void USART1_IRQHandler(void)
{int temp;while(USART_GetITStatus(USART1,USART_IT_RXNE) != RESET){temp = USART_ReceiveData(USART1);printf("%c",temp);USART_ClearITPendingBit(USART1,USART_IT_RXNE);}}

delay.c

#include "stm32f10x.h"
#include "delay.h"void initSysTick(void)
{SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); //ÉèÖÃʱÖÓÔ´8·ÖÅäSysTick->CTRL |= SysTick_CTRL_TICKINT_Msk;            //ʹÄÜÖжÏSysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;             //¿ª¶¨Ê±Æ÷SysTick->LOAD = 9;                                    //ËæÒâÉèÖÃÒ»¸öÖØ×°ÔØÖµ
}
/*** ¹¦ÄÜ£ºÎ¢Ã뼶ÑÓʱº¯Êý* ²ÎÊý£ºxus £º¾ßÌåÑÓʱʱ¼ä (µ¥Î»£ºÎ¢Ãî)* ·µ»ØÖµ£ºNone*/
void delay_us(u32 xus)
{SysTick->LOAD = 9 * xus;                              //¼Æ9´ÎΪ1us£¬xusÔòÖØ×°ÔØÖµÒª*9SysTick->VAL = 0;                                     //¼ÆÊýÆ÷¹éÁãwhile (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk));//µÈ´ý¼ÆÊýÍê³É
}/*** ¹¦ÄÜ£ººÁÃ뼶ÑÓʱº¯Êý* ²ÎÊý£ºxms £º¾ßÌåÑÓʱʱ¼ä (µ¥Î»£ººÁÃë)* ·µ»ØÖµ£ºNone*/
void delay_ms(u32 xms)
{SysTick->LOAD = 9000;                                  //¼Æ9´ÎΪ1ms£¬1000´ÎΪ1sSysTick->VAL = 0;                                      //¼ÆÊýÆ÷¹éÁãwhile (xms--){while (!(SysTick->CTRL & SysTick_CTRL_COUNTFLAG_Msk));//µÈ´ýµ¥´Î¼ÆÊýÍê³É}
}

delay.h

#ifndef _DELAY_H_
#define _DELAY_H_#include "stm32f10x.h"
void initSysTick(void);
void delay_us(u32 xus);
void delay_ms(u32 xms);#endif

usart.c

#include "usart.h"
#include "stm32f10x.h"void usart1_init(void)
{GPIO_InitTypeDef  gpio_init;USART_InitTypeDef usartStruct;NVIC_InitTypeDef  nvic_initStruct;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//1.ÅäÖÃʱÖÓ£ºGPIO¿ÚµÄʱÖÓ£¬Òý½Å¸´ÓõÄʱÖÓ£¬´®¿ÚµÄʱÖÓRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//2.ÅäÖÃGPIOµÄ½á¹¹Ìå//USART1 TX --- PA9,RX --- PA10//2.1 TXgpio_init.GPIO_Mode = GPIO_Mode_AF_PP;gpio_init.GPIO_Pin = GPIO_Pin_9;gpio_init.GPIO_Speed = GPIO_Speed_10MHz;GPIO_Init(GPIOA,&gpio_init);//2.2 RXgpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;gpio_init.GPIO_Pin = GPIO_Pin_10;GPIO_Init(GPIOA,&gpio_init);//3.ÅäÖô®¿ÚµÄ½á¹¹ÌåusartStruct.USART_BaudRate = 9600;usartStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;usartStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;usartStruct.USART_Parity = USART_Parity_No;usartStruct.USART_StopBits = USART_StopBits_1;usartStruct.USART_WordLength = USART_WordLength_8b;USART_Init(USART1,&usartStruct);USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//ÅäÖô®¿ÚÖжÏUSART_Cmd(USART1, ENABLE );nvic_initStruct.NVIC_IRQChannel = USART1_IRQn;nvic_initStruct.NVIC_IRQChannelPreemptionPriority = 1;nvic_initStruct.NVIC_IRQChannelSubPriority = 1;nvic_initStruct.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&nvic_initStruct);}void usart2_init(void)
{GPIO_InitTypeDef  gpio_init;USART_InitTypeDef usartStruct;
//  NVIC_InitTypeDef  nvic_initStruct;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//1.ÅäÖÃʱÖÓ£ºGPIO¿ÚµÄʱÖÓ£¬Òý½Å¸´ÓõÄʱÖÓ£¬´®¿ÚµÄʱÖÓRCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);//2.ÅäÖÃGPIOµÄ½á¹¹Ìå //USART2 TX --- PA2,RX --- PA3gpio_init.GPIO_Mode = GPIO_Mode_AF_PP;gpio_init.GPIO_Pin = GPIO_Pin_2;gpio_init.GPIO_Speed = GPIO_Speed_10MHz;GPIO_Init(GPIOA,&gpio_init);gpio_init.GPIO_Mode = GPIO_Mode_IN_FLOATING;gpio_init.GPIO_Pin = GPIO_Pin_3;GPIO_Init(GPIOA,&gpio_init);//3.ÅäÖô®¿ÚµÄ½á¹¹ÌåusartStruct.USART_BaudRate = 115200;usartStruct.USART_HardwareFlowControl = USART_HardwareFlowControl_None;usartStruct.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;usartStruct.USART_Parity = USART_Parity_No;usartStruct.USART_StopBits = USART_StopBits_1;usartStruct.USART_WordLength = USART_WordLength_8b;USART_Init(USART2,&usartStruct);
//  USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);//ÅäÖô®¿ÚÖжÏUSART_Cmd(USART2, ENABLE );// nvic_initStruct.NVIC_IRQChannel = USART2_IRQn;
//  nvic_initStruct.NVIC_IRQChannelPreemptionPriority = 1;
//  nvic_initStruct.NVIC_IRQChannelSubPriority = 2;
//  nvic_initStruct.NVIC_IRQChannelCmd = ENABLE;
//
//  NVIC_Init(&nvic_initStruct);}//·â×°ÁËһϷ¢ËÍ×Ö·û
void usartSendByte(USART_TypeDef* USARTx, uint16_t Data)
{USART_SendData(USARTx,Data);while(USART_GetFlagStatus(USARTx, USART_FLAG_TXE) == RESET);}//·¢ËÍ×Ö·û´®
void usartSendStr(USART_TypeDef* USARTx,char *str)
{uint16_t i = 0;do{usartSendByte(USARTx,*(str+i));i++;}while(*(str+i) != '\0');//ÅжÏÊÇ·ñ·¢ËÍÍêwhile(USART_GetFlagStatus(USARTx, USART_FLAG_TC) == RESET);
}int fputc(int ch,FILE *f)
{USART_SendData(USART2,(uint8_t)ch);while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);return (ch);
}int fgetc(FILE *f)
{while(USART_GetFlagStatus(USART2, USART_FLAG_RXNE) == RESET);return (int) USART_ReceiveData(USART2);
}

usart.h

#include "stm32f10x.h"
#include <stdio.h>void usart1_init(void);
void usart2_init(void);
void usartSendByte(USART_TypeDef* USARTx, uint16_t Data);
void usartSendStr(USART_TypeDef* USARTx,char *str);

led.c

#include "stm32f10x.h"
#include "led.h"void Led_init(void)
{GPIO_InitTypeDef Led_initStructer;//1.ʹÄÜAPB2µÄʱÖÓGPIORCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//2.½á¹¹ÌåÅäÖÃLed_initStructer.GPIO_Mode  = GPIO_Mode_Out_PP;Led_initStructer.GPIO_Pin     = GPIO_Pin_13;Led_initStructer.GPIO_Speed = GPIO_Speed_10MHz;GPIO_Init(GPIOC, &Led_initStructer);
}

led.h

#include "stm32f10x.h"
void Led_init(void);

再次注意!ld3320波特率为9600

STM32F103C8T6连接LD3320语音识别模块(USART)相关推荐

  1. 第三章 LD3320语音识别模块的使用

    上一章给大家介绍了SYN6288语音识别模块的使用方法,它的作用是播报声音信息,所以这章教大家使用LD3320语音识别模块,让毕设能够"听懂"我们在说什么. 下图是我经常使用的一款 ...

  2. STM32F103C8T6 LD3320语音识别模块非特定识别人声 离线控制 智能家居 开发板

    STM32F103C8T6 LD3320语音识别模块非特定识别人声 离线控制 智能家居 开发板 STM32F103C8T6 LD3320语音识别模块非特定识别人声 离线控制 智能家居 开发板 测试单片 ...

  3. LD3320语音识别模块开发

    达者为先  师者之意 LD3320语音识别模块开发 1 LD3320语音识别模块基本参数 1.1 基本参数 1.2 识别原理 1.3 解决方案: 2 LD3320语音识别模块二次开发 2.1 源码修改 ...

  4. 基于Arduino IDE开发的LD3320语音识别模块

    基于Arduino的LD3320语音识别模块设计详解 文章目录 基于Arduino的LD3320语音识别模块设计详解 前言 一.LD3320驱动编写 step 1.0 使用Arduino的SPI库,通 ...

  5. LD3320语音识别模块分析

    LD3320语音识别模块分析   LD3320是非特定人语音识别芯片,即语音声控芯片.最多可以识别50条预先内置的指令. 识别原理  声音分帧:   声音是一种波,常见的mp3等格式都是压缩格式,必 ...

  6. 基于FPGA的LD3320语音识别模块驱动设计

    一.设计要求 以FPGA为控制核心,接收语音控制信号和识别控制信息: 通过继电器完成对热水器.加湿器.空调等三个家用电器的控制: 二次升级要求:使用无线模块完成对热水器.加湿器.空调等三个家用电器的控 ...

  7. 单片机设计:基于stm32智能语音识别蓝牙音响(ld3320语音识别模块+mp3模块+喇叭+点阵屏+OLED+蓝牙+手机app)

    单片机设计:基于stm32智能语音识别蓝牙音响(ld3320语音识别模块+mp3模块+喇叭+点阵屏+OLED+蓝牙+手机app) 一.主要功能: 1.手机app播放内存卡的音乐.同时点阵屏随音乐进行跳 ...

  8. LD3320语音识别模块+MP3-TF-16P模块实现语音交互功能

    LD3320语音识别模块+MP3-TF-16P模块实现语音交互功能

  9. LD3320语音识别模块:LDV7模块使用详解

    喜欢请关注微信公众号:嵌入式从0到1 公众号内容面向在校大学生.电子爱好者.嵌入式工程师: 涉及电子制作.模块使用.单片机技术.物联网相关知识分享: 软硬件全栈工程师,玩模块,学硬件,带你从0走到1 ...

最新文章

  1. 多线程java_Java多线程基础
  2. html文件嵌入到reportlab,Reportlab学习笔记
  3. IE通过推理IE陈述的版本号
  4. WebStorm 快捷键整理
  5. RS信号制java程序,java – 如何部署一个JAX-RS应用程序?
  6. 3年出货5000万颗!国内老牌芯片商用平头哥玄铁处理器研发新芯片
  7. 如何查看Linux系统的带宽流量
  8. linux重启网卡命令_如何在 Linux 中更改 MAC 地址 | Linux 中国
  9. 通过Chrome浏览器检测和优化页面
  10. Android游戏开发的开源框架
  11. VUE ---- 自定义指令的理解和应用
  12. [回帖整理] 创业难
  13. 软考初级程序员---题目(五)
  14. AccessPort 0d 0a乱码
  15. 怎么拆分PDF文件?分享两种拆分文件的方法
  16. win7 破解后找不到活动分区以及bootmsr missing
  17. python+selenium+scrapy框架爬取斗鱼主播相册内的 图片
  18. 2019届华为秋招数字芯片面试经验
  19. beeline安装_Beeline使用
  20. 定位决定地位,眼界决定境界

热门文章

  1. python语言玫瑰花_python 实现漂亮的烟花,樱花,玫瑰花
  2. Xshell6下载与安装
  3. nodejs安装及环境配置
  4. 用AI从零开始创建一个宫崎骏的世界
  5. 使用 font-spider 对 webfont 网页字体进行压缩
  6. 网页图片循环滚动播放效果
  7. 智能家居Homekit系列一智能插座
  8. openid无效什么意思_“洋河年份原浆”商标被驳回,为什么古井贡酒坐不住了?...
  9. 如何用html制作快速邮箱发到手机qq,简单两步使用node发送qq邮件的方法
  10. 阅读笔记 - 20220409