当前位置:网站首页>Gd32f4xx serial port receive interrupt and idle interrupt configuration
Gd32f4xx serial port receive interrupt and idle interrupt configuration
2022-07-06 22:26:00 【fangye945a】
Recently debugging GD32F4xx, Want to use the idle interrupt of serial port , Discovery and STM32 Some differences . Make a record here , Memo , Prevent repeated stepping on the pit .
Serial port enable interrupt related code :
nvic_irq_enable(USART0_IRQn,0,1);
usart_interrupt_enable(USART0, USART_INT_RBNE); /* Can make USART0 Read area non empty interrupt */
usart_interrupt_enable(USART0, USART_INT_IDLE); /* Can make USART0 Idle interrupt */
Serial interrupt processing function :
void USART0_IRQHandler(void)
{
if ((RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE)) &&
(RESET != usart_flag_get(USART0, USART_FLAG_RBNE))) {
unsigned char value = usart_data_receive(USART0);
RingBufWrite(g_debugRingBuf, value); // Write the received data to ringbuf in
usart_interrupt_flag_clear(USART0, USART_INT_FLAG_RBNE); // Clear the interrupt flag
}
else if (RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_IDLE)) {
usart_interrupt_flag_clear(USART0, USART_INT_FLAG_IDLE);
usart_data_receive(USART0); /* Clear the receive completion flag bit */
(void)LOS_EventWrite(&g_shellInputEvent, 0x1); // Event notification reception completed
}
}
Special attention is paid to : And STM32F4 The difference is , After entering idle interrupt , Need to call usart_data_receive function , Used to clear the receive completion flag bit , Otherwise, the idle interrupt will be triggered many times or not .
stay STM32f4xx in , Clear idle interrupt flag macro is defined as follows :
/** @brief Clears the UART IDLE pending flag. * @param __HANDLE__ specifies the UART Handle. * UART Handle selects the USARTx or UARTy peripheral * (USART,UART availability and x,y values depending on device). * @retval None */
#define __HAL_UART_CLEAR_IDLEFLAG(__HANDLE__) __HAL_UART_CLEAR_PEFLAG(__HANDLE__)
/** @brief Clears the UART PE pending flag. * @param __HANDLE__ specifies the UART Handle. * UART Handle selects the USARTx or UARTy peripheral * (USART,UART availability and x,y values depending on device). * @retval None */
#define __HAL_UART_CLEAR_PEFLAG(__HANDLE__) \ do{
\ __IO uint32_t tmpreg = 0x00U; \ tmpreg = (__HANDLE__)->Instance->SR; \ tmpreg = (__HANDLE__)->Instance->DR; \ UNUSED(tmpreg); \ } while(0U)
You can see that there are read operation pairs DR Register to read , amount to GD32 Standard library usart_data_receive Function function .
边栏推荐
- GD32F4XX串口接收中断和闲时中断配置
- AI enterprise multi cloud storage architecture practice | Shenzhen potential technology sharing
- 2022年6月国产数据库大事记-墨天轮
- That's why you can't understand recursion
- How does the uni admin basic framework close the creation of super administrator entries?
- Research and investment strategy report of China's VOCs catalyst industry (2022 Edition)
- 小程序系统更新提示,并强制小程序重启并使用新版本
- 0 basic learning C language - digital tube
- 如何用程序确认当前系统的存储模式?
- Force deduction question 500, keyboard line, JS implementation
猜你喜欢

RESNET rs: Google takes the lead in tuning RESNET, and its performance comprehensively surpasses efficientnet series | 2021 arXiv

Attack and defense world miscall

第3章:类的加载过程(类的生命周期)详解

基於 QEMUv8 搭建 OP-TEE 開發環境

Assembly and interface technology experiment 5-8259 interrupt experiment
![[sciter]: encapsulate the notification bar component based on sciter](/img/08/a3dd409261054052291e99dd28af11.png)
[sciter]: encapsulate the notification bar component based on sciter

LeetCode刷题(十一)——顺序刷题51至55

Unity3d minigame unity webgl transform plug-in converts wechat games to use dlopen, you need to use embedded 's problem

Spatial domain and frequency domain image compression of images

About the professional ethics of programmers, let's talk about it from the way of craftsmanship and neatness
随机推荐
Four data streams of grpc
2500个常用中文字符 + 130常用中英文字符
That's why you can't understand recursion
Spatial domain and frequency domain image compression of images
Web APIs DOM 时间对象
0 basic learning C language - interrupt
硬件開發筆記(十): 硬件開發基本流程,制作一個USB轉RS232的模塊(九):創建CH340G/MAX232封裝庫sop-16並關聯原理圖元器件
ZABBIX proxy server and ZABBIX SNMP monitoring
About the professional ethics of programmers, let's talk about it from the way of craftsmanship and neatness
Heavyweight news | softing fg-200 has obtained China 3C explosion-proof certification to provide safety assurance for customers' on-site testing
LeetCode 练习——剑指 Offer 26. 树的子结构
Installation and use of labelimg
PVL EDI 项目案例
MySQL约束的分类、作用及用法
labelimg的安装与使用
The SQL response is slow. What are your troubleshooting ideas?
Management background --5, sub classification
基于 QEMUv8 搭建 OP-TEE 开发环境
中国VOCs催化剂行业研究与投资战略报告(2022版)
网络基础入门理解