1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如题:串口初始化如下
UART1_CR2=0x00;//禁止收发中断UART1_CR1=0x00;//8位数据位,无奇偶校验UART1_CR3=0x04;//1位停止位// 16MHz 时钟下 19200波特率 写入值 8 000 000/19200==0340UART1_BRR2=0x01;UART1_BRR1=0x34; |
|
相关推荐
2个回答
|
|
官方的库中有相应的例程,可以对照参考一下:
STM8S_StdPeriph_LibProjectSTM8S_StdPeriph_ExamplesUART1UART1_Interrupt |
|
|
|
在UART1的中断服务程序中添加对接收缓冲区的判断,判断接收到的数据是否为0x00,如果是则进行处理。可以采取以下两种方式来解决0x00数据丢失的问题:
1. 在接收中断服务程序中添加对0x00的判断,并将接收到的数据存储在缓冲区中。在程序的其他地方,可以通过轮询缓冲区的方式读取数据,判断其中是否有0x00数据,然后进行处理。 示例代码: ```c uint8_t receiveBuffer[MAX_BUFFER_SIZE]; uint16_t receiveIndex = 0; void UART1_ReceiveInterruptHandler(void) { if (UART1_SR & UART1_SR_RXNE) { uint8_t data = UART1_DR; // 判断接收到的数据是否为0x00 if (data == 0x00) { // 进行处理 } // 存储接收到的数据 receiveBuffer[receiveIndex] = data; receiveIndex++; } } ``` 2. 使用DMA(直接内存访问)来处理串口数据的接收。DMA可以直接将串口接收到的数据存储到指定的内存区域中,避免数据丢失。 示例代码: ```c uint8_t receiveBuffer[MAX_BUFFER_SIZE]; void UART1_DMA_Init(void) { // 配置DMA通道 DMA_CCR1 = 0x00; // 禁用DMA通道1 DMA_CNDTR1 = MAX_BUFFER_SIZE; // 设置数据传输长度 DMA_CPAR1H = (uint8_t)(UART1_DR >> 8); // 设置外设地址高位 DMA_CPAR1L = (uint8_t)(UART1_DR & 0xFF); // 设置外设地址低位 DMA_CM0ARH = (uint8_t)(receiveBuffer >> 8); // 设置存储器地址高位 DMA_CM0ARL = (uint8_t)(receiveBuffer & 0xFF); // 设置存储器地址低位 DMA_CCR1 = (1 << 7) | (1 << 6) | (1 << 4) | (1 << 1); // 启用DMA通道1,设置为存储器到外设,开启接收中断 } void UART1_DMA_ReceiveInterruptHandler(void) { // 判断接收到的数据是否为0x00 if (receiveBuffer[receiveIndex] == 0x00) { // 进行处理 } receiveIndex++; } ``` |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1777 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1621 浏览 1 评论
1080 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
728 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1678 浏览 2 评论
1938浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
731浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
570浏览 3评论
595浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
554浏览 3评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 02:45 , Processed in 1.187980 second(s), Total 83, Slave 66 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号