如题,在追踪串口中断接收字符接口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相关推荐

  1. 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映像下载地址,不过旧转换工具可能已不适用于 ...

  2. linux u盘fat32转ntfs,只需一个命令 FAT32格式磁盘无损转换成NTFSU盘

    临时来了个大文件要拷贝,容量超过4GB,但是U盘是FAT32格式的,拷贝不进去,尤其是U盘上还有好多文件,这种情况怎么办?有人说别考虑数据了,拷贝出来然后格成ExFAT就好了.不过ExFAT连Win ...

  3. linux 串口 lsr 0xc9,linux 串口驱动(三)

    三.串口的打开 在用户空间执行open操作的时候,就会执行uart_ops->open. Uart_ops的定义如下: tty_open=>init_dev=>initialize_ ...

  4. html将字符转成浮点数,stm32用串口接收到数据,怎么把接收到的字符串转换成浮点数?...

    rintfÄúèY·¢íù′®¿ú */ USART_SendData(USART1, (unsigned char) ch); /* μè′y·¢Ëííê±Ï */ while (USART_Get ...

  5. word转换HTML后 HTML编码是charset=x-cp20936怎么转换成gb2312

    有些word转换HTML后编码为x-cp20936,导至android系统中查看出现乱码,改为gd2312(936)正常 Private WrdApp As Word.Application Priv ...

  6. 关于RS485通讯中使用STM32串口以DMA方式发送数据丢失字节的问题

    1.开发平台 计算机操作系统:WIN7 64位: 开发环境:Keil MDK 5.14: MCU:STM32F407ZET6: STM32F4xx固件库:STM32F4xx_DSP_StdPeriph ...

  7. 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 ...

  8. linux串口发送键值,c51:串口通信,按键发送字符串

    原标题:c51:串口通信,按键发送字符串 一.程序功能 1.实现0-f的16位键盘输入功能,将键值由P1口输出. 2.不同的键值串口发送不同的 二.代码 //函数功能 //1.实现0~f的16位键盘功 ...

  9. STM32串口通信代码、ASCII码、XU4串口通信,printf只会转换为无符号类型,linux下的串口通信程序

    1.其里面的的通信协议是是自己定的,这里 是检测到数据的结尾是以0x0d.0x0a结尾,则表示接受的数据完成了,这个数据是我想要的,这样子就不会出现一些错乱的数据信息.其中的0x8000.0x4000 ...

最新文章

  1. 数据统计之日增用户统计
  2. 应用程序进程(一):创建应用程序
  3. NetDevOps — ncclient
  4. 2021年茅台销售现新套路,限价控价没有用?
  5. WPF 反编译后错误处理
  6. 读书笔记之101个脚本之No.8
  7. SQL表连接,排序输出
  8. centos 6.3 64bit 安装VMware workstation 9.1 64bit
  9. 回归预测 基于ELMAN递归神经网络预测及其matlab代码实现
  10. 嵌入式软件开发笔试面试知识点总结-ARM部分
  11. WIN10专业版激活后变成教育版怎么解决
  12. echarts水球图-动态波纹百分比数据显示
  13. 查看及更改计算机名或域,如何查看和修改计算机名、域和工作组
  14. AAA和RADIUS
  15. 电影《妖妖铃》改名为《妖铃铃》
  16. Altium Designer--如何将图片转成PCB logo
  17. 在网址上输入www.xxx.com到返回界面给用户发生了什么?
  18. 微信,新浪登录分享遇到的问题
  19. 衡量 DevOps 成功与否的重要度量指标
  20. django 基础安装配置流程

热门文章

  1. 人工智能是利用电子计算机模拟人类智力,第一章 计算机系统.ppt
  2. centos 6 安装mysql,CentOS6.5安装MySQL教程(完整教程)
  3. 木兰编程语言python_ulang(木兰编程语言)
  4. html5 css登录注册实现,html5+css3实现一款注册表单实例
  5. linux中死锁的概念,【Linux】死锁概念总结
  6. ie浏览器网页版进入_IE浏览器打开网页速度很慢的解决办法
  7. 【转】编译DCMTK
  8. 【转】WebSocket API总结
  9. 【转】wpf从我炫系列2----布局控件的使用(下)
  10. 【转】什么是ERP、SCM、CRM?