linux 串口 lsr 0xc9,串口发送0x0D后,从串口接收到数据被转换成了0x0A
如题,在追踪串口中断接收字符接口UART_getc() 到底层,其调用的是 typedef int32_t (*UART_ReadPollingFxn) (UART_Handle handle, void *buffer, size_t size);函数指针,但是该原型我并没有检索到,这个函数的具体实现,想要看下,是否在函数内部会将从串口接收的0x0D字符自动转换为0x0A,从而导致上层接收到的字符被意外改变? 如果该函数接口内部并没有进行该操作,那么请问,在初始化该UART Console中,哪项参数可能会造成此现象发生!?
uint8_t UARTGetc(void)
{
return (UARTCharGet(gUartBaseAddr));
}
static int8_t UARTCharGet(uint32_t baseAdd)
{
uint32_t lcrRegValue = 0;
int8_t retVal = 0;
/* Switching to Register Operational Mode of operation. */
lcrRegValue = UARTRegConfigModeEnable(baseAdd, UART_REG_OPERATIONAL_MODE);
/* Waits indefinitely until a byte arrives in the RX FIFO(or RHR). */
while ((uint32_t) UART_LSR_RX_FIFO_E_RX_FIFO_E_VALUE_0 ==
(HW_RD_REG32(baseAdd + UART_LSR) &
UART_LSR_RX_FIFO_E_MASK))
{
/* Do nothing - Busy wait */
}
retVal = (int8_t) HW_RD_REG32(baseAdd + UART_RHR);
/* Restoring the value of LCR. */
HW_WR_REG32(baseAdd + UART_LCR, lcrRegValue);
return retVal;
}
发现在该函数中并没有涉及对接收到的字符的处理,我之所以确定是接收到的字符被改变是通过单步调试,在确定发送端发出字符为0x0D不被发送端改变(这里我使用俩个串口设备互相检测)的前提下,通过我所提到的调用接口UART_getc内部单步调试查看接收到的字符确实变为0x0A.
linux 串口 lsr 0xc9,串口发送0x0D后,从串口接收到数据被转换成了0x0A相关推荐
- linux esd转iso,window_Win10 TH2正式版10586官方ESD映像怎么转换成ISO镜像?,今天phpstudy分享了Win10 TH2(Build - phpStudy...
Win10 TH2正式版10586官方ESD映像怎么转换成ISO镜像? 今天phpstudy分享了Win10 TH2(Build 10586)各版本官方ESD映像下载地址,不过旧转换工具可能已不适用于 ...
- linux u盘fat32转ntfs,只需一个命令 FAT32格式磁盘无损转换成NTFSU盘
临时来了个大文件要拷贝,容量超过4GB,但是U盘是FAT32格式的,拷贝不进去,尤其是U盘上还有好多文件,这种情况怎么办?有人说别考虑数据了,拷贝出来然后格成ExFAT就好了.不过ExFAT连Win ...
- linux 串口 lsr 0xc9,linux 串口驱动(三)
三.串口的打开 在用户空间执行open操作的时候,就会执行uart_ops->open. Uart_ops的定义如下: tty_open=>init_dev=>initialize_ ...
- html将字符转成浮点数,stm32用串口接收到数据,怎么把接收到的字符串转换成浮点数?...
rintfÄúèY·¢íù′®¿ú */ USART_SendData(USART1, (unsigned char) ch); /* μè′y·¢Ëííê±Ï */ while (USART_Get ...
- word转换HTML后 HTML编码是charset=x-cp20936怎么转换成gb2312
有些word转换HTML后编码为x-cp20936,导至android系统中查看出现乱码,改为gd2312(936)正常 Private WrdApp As Word.Application Priv ...
- 关于RS485通讯中使用STM32串口以DMA方式发送数据丢失字节的问题
1.开发平台 计算机操作系统:WIN7 64位: 开发环境:Keil MDK 5.14: MCU:STM32F407ZET6: STM32F4xx固件库:STM32F4xx_DSP_StdPeriph ...
- STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085和串口只发送数据不能接收数据问题
STM32移植RT-Thread后的串口在调试助手上出现:(mq != RT_NULL) assert failed at rt_mq_recv:2085的问题讨论:http://www.rt-thr ...
- linux串口发送键值,c51:串口通信,按键发送字符串
原标题:c51:串口通信,按键发送字符串 一.程序功能 1.实现0-f的16位键盘输入功能,将键值由P1口输出. 2.不同的键值串口发送不同的 二.代码 //函数功能 //1.实现0~f的16位键盘功 ...
- STM32串口通信代码、ASCII码、XU4串口通信,printf只会转换为无符号类型,linux下的串口通信程序
1.其里面的的通信协议是是自己定的,这里 是检测到数据的结尾是以0x0d.0x0a结尾,则表示接受的数据完成了,这个数据是我想要的,这样子就不会出现一些错乱的数据信息.其中的0x8000.0x4000 ...
最新文章
- 数据统计之日增用户统计
- 应用程序进程(一):创建应用程序
- NetDevOps — ncclient
- 2021年茅台销售现新套路,限价控价没有用?
- WPF 反编译后错误处理
- 读书笔记之101个脚本之No.8
- SQL表连接,排序输出
- centos 6.3 64bit 安装VMware workstation 9.1 64bit
- 回归预测 基于ELMAN递归神经网络预测及其matlab代码实现
- 嵌入式软件开发笔试面试知识点总结-ARM部分
- WIN10专业版激活后变成教育版怎么解决
- echarts水球图-动态波纹百分比数据显示
- 查看及更改计算机名或域,如何查看和修改计算机名、域和工作组
- AAA和RADIUS
- 电影《妖妖铃》改名为《妖铃铃》
- Altium Designer--如何将图片转成PCB logo
- 在网址上输入www.xxx.com到返回界面给用户发生了什么?
- 微信,新浪登录分享遇到的问题
- 衡量 DevOps 成功与否的重要度量指标
- django 基础安装配置流程
热门文章
- 人工智能是利用电子计算机模拟人类智力,第一章 计算机系统.ppt
- centos 6 安装mysql,CentOS6.5安装MySQL教程(完整教程)
- 木兰编程语言python_ulang(木兰编程语言)
- html5 css登录注册实现,html5+css3实现一款注册表单实例
- linux中死锁的概念,【Linux】死锁概念总结
- ie浏览器网页版进入_IE浏览器打开网页速度很慢的解决办法
- 【转】编译DCMTK
- 【转】WebSocket API总结
- 【转】wpf从我炫系列2----布局控件的使用(下)
- 【转】什么是ERP、SCM、CRM?