【wdx_swFIFO接口函数概览】
swFifoInit() 初始化swFIFO对象(都是面向对象的操作)
swFifoIsFull() 判定swFIFO对象是否满
swFifoIsEmpty() 判定swFIFO对象是否空
swFifoWrite() 向swFIFO对象写入数据
swFifoRead() 从swFIFO对象读出数据
【wdx_USART接口函数概览】
usartPeriphEnable() USART外设使能
usartPeriphDisable() USART外设禁止
usartPinRemap() USART管脚映射
usartModeConfig() USART模式配置(波特率、字长、停止位、校验等)
usartFifoConfig() USART软件FIFO配置(FIFO大小可由用户指定,很灵活)
usartRun() USART运行
usartStop() USART停止(先等待硬件发送完成再停止)
usartWaitTxFinish() USART等待硬件发送真正完成
usartRxIsAvail() USART判定接收是否可用(即判定RxFIFO是否不空)
usartRxFifoClear() USART清空RxFIFO(遇到接收错误时应清空)
usartPutc() USART发送单个字符(如果TxFIFO满则自动等待)
usartPuts() USART发送字符串
usartGetc() USART接收单个字符(等待)
usartFifoGetc() USART以FIFO方式接收数据(不等待)
usartTerminalGets() USART以终端方式接收字符串(HyperTerminal,等待)
usartBreakSend() USART发送间断字符
usartFlagGet() USART获取标志(超载、校验错、帧错误、空闲线、间断等)
usartFlagClear() USART清除标志
【USART示例】发送字符串
#include "wdxLib_GD32F103.h"
// 定义USART1的收发缓冲区(收发FIFO各用一半)
char USART1_buf[128];
int main(void)
{
// 设置系统时钟(48MHz主频)
if (sysClockSet(OSC_HSE, FREQ_8M, 6) == 0) // 采用外部8MHz晶振,6倍频
{
sysClockSet(OSC_HSI, FREQ_8M, 6); // 若外部晶振失效,则改用内部振荡器
}
// 初始化并配置USART1:TX = PA9,RX = PA10;波特率115200,数据8位,无校验,1个停止位,无流控制
usartPeriphEnable(USART1);
usartPinRemap(USART1, USART_PIN_DEFAULT);
usartModeConfig(USART1, 115200, USART_WLEN_8, USART_PAR_NONE, USART_STOP_1, USART_FLOW_NONE);
usartFifoConfig(USART1, USART1_buf, sizeof(USART1_buf));
usartRun(USART1);
// 发送字符串
usartPuts(USART1, "hello\r\n"); // hello<CR><LF>
for (;;)
{
sysModeSleep(SYS_WAKEUP_INT); // 进入Sleep模式以节省功耗(不影响USART收发)
}
}
|