STM32------>第三天,spi补充,uart-dma,NB-loT介绍,At指令,串口透传
spi 补充
uart通讯: 通讯双方波特率,帧格式必须一致
spi通讯: 通讯双方极性,相位一致
Lcd
/*************************************************
函数名:Lcd_Clear
功能:全屏清屏函数
入参函数:填充颜色COLOR
返回值:无
*************************************************/
void Lcd_Clear(uint16_t Color)
{ unsigned int i,m;Lcd_SetRegion(0,0,X_MAX_PIXEL-1,Y_MAX_PIXEL-1);// 设置显示区域(整个屏幕)Lcd_WriteIndex(0x2C);//发送命令for(i=0;i<X_MAX_PIXEL;i++)for(m=0;m<Y_MAX_PIXEL;m++){ LCD_WriteData_16Bit(Color);}
}
uart-dma
/****main.c***/__HAL_UART_ENABLE_IT(&huart1,UART_IT_IDLE); //使能uart1 的空闲中断__HAL_UART_CLEAR_FLAG(&huart1,UART_CLEAR_IDLEF); // 清除uart1 的空闲中断标志HAL_UART_Receive_DMA(&huart1,uartdmabuff,80); //dma 方式接收最多80个字节,接收到uartdmabuffif(uartdmafinished) //判断dma是否结束{for(i = 0; i < dmalength; i++) //打印dma 接收的数据{printf("%c",uartdmabuff[i]);}uartdmafinished = 0;//HAL_UART_Receive_DMA(&huart1,uartdmabuff,80); // 启动下次dma 接收}/***stm32f0xx_it.c***/
void USART1_IRQHandler(void)
{/* USER CODE BEGIN USART1_IRQn 0 */if(__HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE) == SET)//uart1 是否空闲, 说明dma 结束了{__HAL_UART_CLEAR_FLAG(&huart1,UART_CLEAR_IDLEF); // 清除uart1 的空闲中断标志HAL_UART_DMAStop(&huart1);//停止dma接收uartdmafinished = 1;//置dma 结束的标志dmalength = 80-hdma_usart1_rx.Instance->CNDTR;//得到此次dma接收的字节数//该寄存器hdma_usart1_rx.Instance->CNDTR 初始值80, 收到n个字节, 该寄存器为80-n,printf("finished\r\n");}/* USER CODE END USART1_IRQn 0 */HAL_UART_IRQHandler(&huart1);/* USER CODE BEGIN USART1_IRQn 1 *//* USER CODE END USART1_IRQn 1 */
}
NB-IoT 介绍
Narrow Band Internet of Things 窄带物联网
At指令
模块与计算机之间的通信协议是一些AT指令集
AT+CFUN=0关闭射频功能
AT+CFUN=1开启射频功能
AT+NBAND?查询模组配置频段
AT+NBAND=5配置模组为电信频段
AT+CGSN=1 查询IMEI号
AT+CGSN=1,201612091450303 设置IMEI号
AT+NCDP=XX.XX.XX.XX 设置 IoT 平台 IP 地址(非 COAP 协议可以不配置)
串口透传,格西烽火(使用At指令)
PC 和 stm32 的uart1 通讯
nb 模块和 stm32 的uart2 通讯
stm32 把uart1 收到的数据, 从uart2 发出,
stm32 把uart2 收到的数据, 从 uart1 发出,实现透传
stm32 实现透传:
void USART2_IRQHandler(void){/* USER CODE BEGIN USART2_IRQn 0 */if(__HAL_UART_GET_FLAG(&huart2,UART_FLAG_RXNE) == SET){while((USART1->ISR&0x40) == 0) ;USART1->TDR = USART2->RDR;}
STM32------>第三天,spi补充,uart-dma,NB-loT介绍,At指令,串口透传相关推荐
- STM32和树莓派串口透传
目录 树莓派环境串口透传 STM32环境串口透传 最近做一个项目需要STM32和树莓派进行串口通信,实现原理如下: 第一步:使用USB转TTL分别调试STM32和树莓派的串口透传,确保可以通信: 第二 ...
- ft4232树莓派linux扩展串口,如何实现STM32和树莓派串口透传?
最近做一个项目需要STM32和树莓派进行串口通信,实现原理如下: 第一步:使用USB转TTL分别调试STM32和树莓派的串口透传,确保可以通信: 第二步:确保第一步成功后,将树莓派和STM32连接,进 ...
- LoRa开发|LoRa(SX1276/8)串口透传代码-将LoRa封装成单独的驱动(STM32)
一.前言 嵌入式开发中我们要时刻保持代码的高效与整洁.2020年,开年注定不平凡,新型冠状肺炎的出现哪里也去不了,在家无聊写点东西吧.最近和一友人聊天,友人一直在抱怨学习lora没有前途,一直在纠结要 ...
- 【从0到1搭建LoRa物联网】19、LoRa串口透传例程(补充)
系列文章: [从0到1搭建LoRa物联网]1.LoRa物联网的架构 [从0到1搭建LoRa物联网]2.终端设备开发方式 [从0到1搭建LoRa物联网]3.国产LoRa终端ASR6505软硬件 [从0到 ...
- 何谓”透传“? UART串口WIFI模块做”透传“的目的及其局限性
前言 本文从UART串口型WIFI模组的"透传"概念的本质入手,解释了"透传"的实际机理,点出了UART串口型模组的"透传",其目的是为了避 ...
- 【STM32】HAL库 SPI DMA UART驱动开发
零.瞎BB一些 最近真的是.....过得...些许艰难... 从实习到正式入职,在公司的项目组待了3个月左右了,同事.项目.代码.逻辑.架构都熟悉了,毕业后入职1个月的时间里,能给项目组改了几个bug ...
- stm32使用XR20M1172详细攻略·SPI转UART串口
1.XR20M1172总结概述 XR20M1172是一块高性能的2通道通用异步接收器和发送器,通常用于串口不够用或外设模块只支持串口的场景中,其输入端有SPI和IIC两种协议可选,输出端两路UART, ...
- 【STM32】基于STM32CubeIDE SPI+DMA驱动WS2812
[STM32]基于STM32CubeIDE SPI+DMA驱动WS2812 ✨申明:本文章仅发表在CSDN网站,任何其他网见此内容均为盗链和爬取,请多多尊重和支持原创!
- 【STM32】HAL库 STM32CubeMX教程十一---DMA (串口DMA发送接收)
前言: 本系列教程将 对应外设原理,HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1.芯片: STM32F407ZET6/ STM32F103ZET6 ...
最新文章
- 2021年大数据Spark(二):四大特点
- 2018年前35名Python面试问题和答案
- Delphi使用资源文件全攻略
- 第四届大数据科学与工程国际会议(2019)
- iOS开发--UIKit控件之UISearchBar(搜索栏)
- [Python] 最常见括号()、[]、{}的区别
- Windows Phone本地数据库(SQLCE):13、更新数据(翻译)
- 漏洞扫描产品评测打分项
- 关于MacOS升级10.13系统eclipse菜单灰色无法使用解决方案
- 使用ffmpeg合并.h264文件
- 大学课程 | 《计算机系统结构》详细知识点总结
- 北京航空航天大学计算机科学与技术考研科目,2022北京航空航天大学计算机科学与技术考研备考指导-参考书、分数线...
- idea工具的内存优化
- 最近常用容易遗忘的命令
- linux 之 mtd and mtdblock
- 深度系统对电脑配置要求
- 在AWS EKS部署ALB
- D.Say No to Palindromes(前缀和优化查询
- 实现一个简单的trim函数,用于去除一个字符串,头部和尾部的空白字符
- Bert+BiLSTM+CRF实体抽取