在昨天的文章[Day 25]-【STM32系列】串列通讯的老祖宗:UART中我们稍微提到了关於UART的相关知识,如果有兴趣的朋友们可以先去了解一下再来,那接续上一篇光用说的并不能解释完全,所以今天我将实作UART传输部分,你可能会注意到有人写UART/USART,甚麽是USART呢?其实就是UART的强化版!
UART:Universal Asynchronous Receiver/Transmitter,通用非同步收发传输器。
USART:Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步非同步收发传输器。
从字面意思我们也可以知道USART比UART增加了一部分同步的功能,同步的意思指是否有透过clock,是同步收发器和异步收发器最大的区别,这取决於硬体的连接。也就是说我们可以拿USART来替代SPI当恰好缺少一个SPI串口的时候。SPI跟I²C、UART一样也是一种通讯协定,我们改天再做一期文章来讨论这个SPI。
回到我们今天的主题,UART 串列传送分成三种模式:
轮询(Polling):就是阻塞式询问,CPU都不干别的事了,就整天在那边问你说:「现在有没有要传资料啊?」没有要传我就继续等,总是在那边询问、等待。这种方最土法炼钢、这就是轮询的缺点,效率太低,占用cpu时间。
中断(Interrupt):没有收到数据时,执行其他的程序,收到数据後,进入中断处理通讯。与轮询相对来说,不用循环查询状态暂存器,可以有更多的时间运行其他程序。
DMA(Direct Memory Access):直接记忆体存取。串列数据的接收与发送由DMA处理,DMA说:「我把接收、传送的资料放在记忆体的某个位置,你如果需要就自己去那个位置提取」。DMA也可以分为轮询与中断方式。资料的发送与接收都不用CPU干预,通过DMA进行。 CPU有更多的时间运行其他程序。
预设STM32微控制器的PA2(TX)和PA3(RX)上的USART2端口连接到 ST-LINK 烧录器连接到你的电脑,代表只要开启UART2并插上USB就可以与电脑连线,如果你想用UART2与其他扩充板通讯,可以将你Nucle开发板上SB62、SB63短路, SB13、SB14开路(原始状态SB62、SB63开路, SB13、SB14短路)。
在这种情况下,可以将其他USART端口接到ST-LINK 烧录器, 例如,在NUCLEO-L053R8上,可以使用PA2 (TX)和PA3(RX)上的USART2。 需要连接两条跳线:
这里我再推一个软件,hercules setup utility一个好用的Socket测试工具,我们将用它来接收、发送UART/USART数据,其实他还支援很多功能,例如:UDP/IP终端和TCP/IP客户端和服务器终端,重点是他免费也好用,Win10目前也支援,算是一个老牌工具了。
请先官网下载:https://www.hw-group.com/software/hercules-setup-utility
- STM32 Nucleo-64 boards (MB1136)资料手册
https://www.st.com/resource/en/user_manual/dm00105823-stm32-nucleo-64-boards-mb1136-stmicroelectronics.pdf- STM32L053R8 datasheet
https://www.st.com/resource/en/datasheet/stm32l053r8.pdf- RM0367 Reference manual Ultra-low-power STM32L0x3 advanced Arm®-based 32-bit MCUs
https://www.st.com/resource/en/reference_manual/dm00095744-ultra-low-power-stm32l0x3-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf- ARM Mbed官网介绍 - NUCLEO-L053R8
https://os.mbed.com/platforms/ST-Nucleo-L053R8/- STM32 官网介绍 - STM32L053R8
https://www.st.com/en/microcontrollers-microprocessors/stm32l053r8.html#overview
- 此开发板售价在台币1000元以下,读者可於以下网站购得:
https://www.mouser.tw/
https://www.digikey.tw/
这是一个阴谋论...
<<: 资安这条路 26- [Web 服务器软件] IIS (Internet Information Services)
程序版本: Flutter 2.2.1 使用JSONPlaceholder为 Free fake A...
我们上一个篇章认识了绑定事件,了解到不管是什麽节点,都可以绑定事件 那为什麽 JavaScript...
今天介绍使用 GRU 进行时间序列预测,一样采用我们最爱的股价资料集!! 今日大纲 GRU 介绍 门...
今天我们来介绍云端的监控, Cloud Operations Suite 。这个服务以前被称做 St...
曼哈顿距离(Manhattan Distance) 假设你要从家里走到学校,行径的距离肯定不会是两点...