尝试使用串口通讯进行通讯,我在原理图上面怎么找都找不到串口引脚。
翻查数据手册,发现并没有特定的串口引脚,芯片内部有一个神奇的数字信号引脚分配器——>PORTCON。
对于部分数字输入输出功能,可以配置到任意 I/O 引脚,以方便板级布局。包括如下功能:
 UARTn_TX           UARTn_RX
 I2Cn_SDA           I2Cn_CLK
 PWMx_OUT         PWM_BREAK
 COUNTERn_IN     CAPTURE_IN
 CAN_RX              CAN_TX
怎么用呢?我们看看下面这个图应该就明白了。

意思是可用把上面列出来的数字类型引脚分配到任意的带FUNCTION功能的引脚上面。
那我们看看那些引脚是带有FUNCTION的呢?上图:

看起来,除了电源引脚、晶振引脚、复位引脚,其余的引脚都支持配置为FUNCTION功能。
怎么配置呢?我们尽量不要关注寄存器层,直接使用官方的例程上面的库接口:
    PORT_Init(PORTA, PIN0, FUNMUX_UART0_RXD, 1);    //GPIOA.0配置为UART0输入引脚
    PORT_Init(PORTA, PIN1, FUNMUX_UART0_TXD, 0);    //GPIOA.1配置为UART0输出引脚
来到这里,终于明白为什么开发板上面CH340G的两根串口线不直连MCU了。
初始化串口,使用官方的代码,略微修改波特率为115200。

void SerialInit(void)
{UART_InitStructure UART_initStruct;PORT_Init(PORTA, PIN0, FUNMUX_UART0_RXD, 1);    //GPIOA.0配置为UART0输入引脚PORT_Init(PORTA, PIN1, FUNMUX_UART0_TXD, 0);   //GPIOA.1配置为UART0输出引脚UART_initStruct.Baudrate = 115200;UART_initStruct.DataBits = UART_DATA_8BIT;UART_initStruct.Parity = UART_PARITY_NONE;UART_initStruct.StopBits = UART_STOP_1BIT;UART_initStruct.RXThreshold = 3;UART_initStruct.RXThresholdIEn = 0;UART_initStruct.TXThreshold = 3;UART_initStruct.TXThresholdIEn = 0;UART_initStruct.TimeoutTime = 10;UART_initStruct.TimeoutIEn = 0;UART_Init(UART0, &UART_initStruct);UART_Open(UART0);
}

重定位编译器C库的标准输出:

int fputc(int ch, FILE *f)
{UART_WriteByte(UART0, ch);while(UART_IsTXBusy(UART0));return ch;
}

这样就能够愉快的使用printf(...)函数进行格式化打印数据了。
-----------------------------------------------------------------------------------------
直接把MCU串口引脚连接到CH340G的串口引脚上,不知道会不会烧掉
PA0(RX)-->TX
PA1(TX)-->RX

-----------------------------------------------------------------------------------------

刚刚想用keil直接下载程序,便按官方教程,修改Jflash中的相关文件,但是keil还是无法下载,还是要使用官方的Jlink下载软件。
写好串口的程序,下载进去。
芯片没有任何反应。下载之前的点灯程序,按下按键,依然没有任何反应。
芯片似乎挂掉了,可能是由以下原因导致,
①按照官方的教程中修改Jlink的Device.xml文件(重装Jlink,没有解决问题,排除!)
②CH340G IO无法直连MCU IO导致芯片不正常,
③使用了下载软件的校验功能,虽然没有成功过,可能影响了内部的数据
④使用keil下载,虽然下载失败,可能影响了内部的数据
反正现在情况就是显示下载成功,但是没有出现想要的实验现象,具体原因未知。


使用下载软件的校验功能,校验结果说不一致,到底是什么原因呢?

=======================================================================

解决方案:

下载https://whycan.cn/files/members/1390/Synwit_JFLASH-190304.rar的内容,解压后,复制到./Keil/ARM/Flash中,然后直接使用Keil下载程序,下载之前的点灯程序,成功点灯。目录如下:

-----------------------------------------------------------------------------------------

程序下载进去之后,串口调试助手上面没有任何数据,将2根线反过来,可用看到数据,说明上面这个接法是错的,应该修正为:
PA0(RX)-->RX
PA1(TX)-->TX
(此接法对应开发板上面的丝印,并非是芯片引脚的标识)

[3]SWM181-使用串口相关推荐

  1. 【2022河南省电赛】SWM181最小系统核心板-开源

    SWM181CBT6核心板 写在前面 在2022"数智中原"河南省大学生电子设计大赛的来临之际,河南省电赛组委会也向大家公开部分竞赛信息.主控(MCU)是体现一个系统性能的重要部分 ...

  2. cola_os|cola_os(v1.2.0)版本发布增加国产单片机SWM181例程

    一.前言 基于一段时间的优化cola os发布了1.2.0版本. 增加串口使用例程 优化任务管理 增加SWM181国产MCU例程 二.代码介绍 cola os说明 三.os代码 #ifndef _CO ...

  3. python第三方库之学习pyserial库--串口通信

    pyserial串口通信库 1.安装pyserial库 2.填写串口参数的注意事项 3.简单封装一下 4.碰到的bug 1.安装pyserial库 pip install pyserial versi ...

  4. 【嵌入式】openmv与stm32的串口通信

    参考:(文中部分图/文字/代码来自以下文章,部分内容由于时间久远已经找不到原作者,可联系注明或删除) PYTHON串口数据打包发送STM32接收数据解析 openmv中文文档 这里以openmv循迹代 ...

  5. Android 串口通讯 获取卡号

    首先你的andoridstudio 需要配置ndk 环境 然后在去下载谷歌的的demo 下载地址 把这些直接复制到代码中 一般  jni C语言调用java 是指定包名调用的 所有android_se ...

  6. 51单片机 小车 L298N pwm调速 串口控制 按键控制

    难点:1.串口定时器T1,和T0定时器优先级 2.pwm频率与占空比的设置 按键控制 按键1--前进 按键2--后退 按键3--加速 按键4--减速 (板子上只有四个按键) 串口控制 '1'--前进 ...

  7. VC串口通信编程-2

    VC串口通信编程 (2009-07-08 13:48:40) 转载▼ Win32串口编程(转:韩耀旭) 在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信.串口通信 ...

  8. pci串口驱动安装失败_TSC TTP-243E Pluse装LTP并口驱动无法安装

    一.前言描述 接到客户报修说,电脑无法开机,即到哥上门维修立即安排人员到现场查看原因,到现场后,查看的确是电脑系统问题,重新安装系统,安装完成系统后,发现打印机无法使用.这个打印机型号是TSC TTP ...

  9. rs232串口驱动_LED驱动电路设计

    这里设计了两种方案,方案一目标需要低功耗的led,方案二目标需要高功耗的LED.这里重点说下第一种方案,方案电路图如图所示.LED直接通过一个上拉排阻将8个LED连接在单片机上,这样的优点是电路结构简 ...

  10. 3.实现串口功能及消息邮箱

    提醒: 如果您是完全按照<1.一步一步移植ucos到stm32f103开发版(修订版)>来新建的工程的话,那很遗憾,你要重新建立一个工程,因为,在那篇文章的步骤1中,我们选中了GPIO,但 ...

最新文章

  1. 曲线聚类_机器学习入门必读:6种简单实用算法及学习曲线、思维导图
  2. 京瓷 打印 打印机 账户_UV打印机市场竞争的关键是什么?
  3. K-Means ++ 和 kmeans 区别
  4. tp5.0行为的用法,可以存入json数据,方便读取数据。
  5. 【OpenCV学习笔记】2.1OpenCV基本数据类型
  6. win7桌面计算机没了,win7系统桌面的计算机图标没了的解决方法
  7. 诺基亚9.3 PureView或再度跳票:搭载高通骁龙875明年发布
  8. springmvc 监听器getWriter() has already been called for this response问题
  9. 模板引擎-1-基础概念和是使用小案例
  10. Comware 架构理解
  11. 远程办公安全解决方案
  12. ntfsdos pro v5.0
  13. word页眉前后不一致怎么设置_2007word中,如何在某几页设置与前后不同的页眉?
  14. CAD给标注尺寸加上下公差的方法
  15. java options设置_JAVA_TOOL_OPTIONS和_JAVA_OPTIONS
  16. 播放服务器视频文件卡顿,视频播放卡顿、无法播放,应该怎么办?
  17. 微软逼迫Office客户切换成年度付费会员:否则月度订阅价格将提高20%
  18. 有三顶红帽子和两顶蓝帽子逻辑推理
  19. 学生护眼台灯哪个牌子最好?学生学习专用护眼台灯推荐
  20. 名悦集团:对于自动挡初学者有哪些驾驶技巧

热门文章

  1. 老生常谈:微博,QQ,淘宝三种开发平台对比 笔记
  2. Ubuntu16.04.4 + 双 NAVDA TitanX + CUDA9.0 + cudnn7.05 + TensorFlow 1.8(1.5.0) + Keras
  3. 2022-2027年中国维生素A行业市场调研及未来发展趋势预测报告
  4. 学通C#的24堂课(奋斗的小鸟)_PDF 电子书
  5. 合成制药废水处理用DTRO膜 效果大不一样
  6. 图片转base64在浏览器打开图片显示乱码
  7. 浅学C#(2)——CLR的概念和功能
  8. Codeforces Round #770 (Div. 2) B. Fortune Telling
  9. 查询比本部门平均工资高的员工信息
  10. latex c语言程序,latex中添加C++代码