重庆网站seo技术做h5免费软件有哪些
web/
2025/10/8 5:39:13/
文章来源:
重庆网站seo技术,做h5免费软件有哪些,企业起名网站怎么做,wordpress 导入html一#xff0c;查阅数据手册#xff0c;找到对应的IO口和外设总线并配置好外设源文件
想了解USART的具体原理的小伙伴请进传送门#xff1a;#xff08;总结#xff09;STM32中USART原理及应用#xff08;PC、BLE、ESP8266通信实现#xff09;-CSDN博客 二#xff0c;打…一查阅数据手册找到对应的IO口和外设总线并配置好外设源文件
想了解USART的具体原理的小伙伴请进传送门总结STM32中USART原理及应用PC、BLE、ESP8266通信实现-CSDN博客 二打开外设时钟 三配置GPIO引脚为复用模式 四重映射IO引脚为串口功能不是必须的像我用的是PA9 和 PA10就可以不用因为默认有串口功能 五配置UART1参数波特率数据位停止位校验位设置无流控设置全双工跟STM32F407代码一样 六配置USART的中断选择中断通道抢占优先级响应优先级打开中断通道跟STM32F407代码一样 七选择USART1的中断源即当接收到数据时触发中断 八打开串口 九编写USART中断服务函数 十完整代码展示
/******************************************************************************** file main.c * author * version V1.0* date 2024/12/30* brief 本代码配置USART实现BLE和MCU进行串口通信实现通过手机蓝牙来控制小灯的开关******************************************************************************
*/#include stm32f10x.h
#include delay_us.h
#include delay_ms.h
#include string.h/* Private typedef 用于记录用户自定义的一些数据类型的别名-------------------*//* Private define 用于记录用户自定义的类型比如结构体、共用体、枚举-------*//* Private macro 用于记录用户自定义的宏定义-------------------------------*//* Private variables 用于记录用户自定义的全局变量-----------------------------*/
uint8_t u1_rxbuf[512] {0}; //作为UART1的接收缓冲区
uint32_t u1_rxcnt 0; //作为UART1的接收计数器/* Private function prototypes 用于记录用户自定义的函数声明-------------------*//* Private functions 用于记录用户自定义的函数原型-----------------------------*//*** brief 该函数初始化IO引脚用于LED的点亮* param None* retval None*/
void LED_Config(void)
{GPIO_InitTypeDef GPIO_InitStructure;//打开时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//配置引脚参数GPIO_InitStructure.GPIO_Pin GPIO_Pin_14 ;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_Out_PP;GPIO_Init(GPIOC, GPIO_InitStructure);//输出高电平点亮小灯GPIO_SetBits(GPIOC, GPIO_Pin_14);
}/*** brief 该函数初始化USART1用于BLE通信* param None* retval None*/
void USART1_Config(u32 baud)
{USART_InitTypeDef USART_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;//打开GPIOA的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);//打开USART2的时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);//重映射IO引脚为串口功能GPIO_PinRemapConfig(GPIO_Remap_USART1, ENABLE);//配置GPIO的引脚GPIO_InitStructure.GPIO_Pin GPIO_Pin_9;GPIO_InitStructure.GPIO_Speed GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode GPIO_Mode_AF_PP;GPIO_Init(GPIOA, GPIO_InitStructure);//配置UART1的参数 最常用的格式: 1bit停止位 8bit数据位 No校验位 9600bpsUSART_InitStructure.USART_BaudRate baud; //波特率USART_InitStructure.USART_WordLength USART_WordLength_8b; //数据位USART_InitStructure.USART_StopBits USART_StopBits_1; //停止位USART_InitStructure.USART_Parity USART_Parity_No; //校验位USART_InitStructure.USART_HardwareFlowControl USART_HardwareFlowControl_None; //无流控USART_InitStructure.USART_Mode USART_Mode_Rx | USART_Mode_Tx; //全双工USART_Init(USART1, USART_InitStructure);//配置USART的中断NVIC_InitStructure.NVIC_IRQChannel USART1_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 0;NVIC_InitStructure.NVIC_IRQChannelSubPriority 0;NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE;NVIC_Init(NVIC_InitStructure);//选择UART1的中断源 接收到数据则触发中断请求USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);//打开UART1串口USART_Cmd(USART1, ENABLE);}/*** brief 程序的入口* param None* retval None*/
int main(void)
{LED_Config();USART1_Config(9600);while (1){//判断UART2是否接收到数据 假设接收到 led_on,则让LED点亮if( u1_rxcnt 0 strstr((char *)u1_rxbuf,led_on)){GPIO_SetBits(GPIOC,GPIO_Pin_14); //输出高电平 u1_rxcnt 0; //计数器复位memset((char *)u1_rxbuf,0,512); //清空数组}//判断UART2是否接收到数据 假设接收到 led_off,则让LED熄灭if( u1_rxcnt 0 strstr((char *)u1_rxbuf,led_off)){GPIO_ResetBits(GPIOC,GPIO_Pin_14); //输出低电平 u1_rxcnt 0; //计数器复位memset((char *)u1_rxbuf,0,512); //清空数组}}
}/**
* brief This function handles USRAT1 interrupt request.
* param None
* retval None
*/
void USART1_IRQHandler(void)
{//判断是否接收到数据if (USART_GetITStatus(USART1, USART_IT_RXNE) SET){ //把串口收到的字节存储到变量data中u1_rxbuf[u1_rxcnt] USART_ReceiveData(USART1); if( u1_rxcnt 512 ){u1_rxcnt 0;}}
}/********************** (C) COPYRIGHT Your Name xxxx126.com***END OF FILE****/
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88899.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!