MSP432自主开发笔记3:串口__编写自定义printf发送函数、编写发送字节字符串函数编写

29 篇文章 16 订阅 ¥59.90 ¥99.00

之前其实对于串口在收发字节、收发字符串方面的介绍已经挺完全了,

但今日无意间发现漏了些什么,之前有讲到过串口的printf()发送问题,但也仅仅教大家如何重定向printf();来决定向哪个串口发送数据.

printf();固然是个包容性很强、使用起来很方便的函数,但它却只有一个,无法满足多串口都能享受这么方便的发送方式~

因此我们需要更多类似的函数来满足多个串口更方便发送数据的需要!

此处提供俩种思路:

1.编写普通的串口字节、字符串发送函数

2.自定义类似于printf();发送函数的编写

本文教大家俩种思路的写法,文章提供源码、测试工程下载

目录

相关串口学习文章传送门:

一、普通的串口字节、字符串发送函数编写:

1.编写普通的串口字节、字符串发送函数:

2.自定义printf();发送函数的编写:

整体测试工程下载:


 

相关串口学习文章传送门:

基础串口收发的知识与配置在此我不做介绍了,没有学习熟悉的可以看下面有关串口的文章,我也许没有全部罗列出来,可以自行去专栏查找~~

  • 17
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论
MSP432串口发送数据的函数可以使用UART模块的发送数据寄存器(TXBUF)。 下面是一个简单的示例代码,演示了如何使用MSP432的UART模块发送数据: ```c #include <ti/devices/msp432p4xx/driverlib/driverlib.h> // 定义串口号和波特率 #define UART_MODULE EUSCI_A0_BASE #define BAUD_RATE 115200 void UARTSend(char *pui8Buffer, uint32_t ui32Count) { uint32_t ui32Index; // 将数据写入TXBUF寄存器 for(ui32Index = 0; ui32Index < ui32Count; ui32Index++) { UART_transmitData(UART_MODULE, pui8Buffer[ui32Index]); } } int main(void) { // 初始化MSP432的时钟和GPIO MAP_WDT_A_holdTimer(); MAP_Interrupt_disableMaster(); MAP_FPU_enableModule(); MAP_CS_setDCOCenteredFrequency(CS_DCO_FREQUENCY_48); MAP_CS_initClockSignal(CS_SMCLK, CS_DCOCLK_SELECT, CS_CLOCK_DIVIDER_1); MAP_GPIO_setAsPeripheralModuleFunctionOutputPin(GPIO_PORT_P1, GPIO_PIN2 | GPIO_PIN3, GPIO_PRIMARY_MODULE_FUNCTION); // 初始化UART模块 MAP_UART_initModule(UART_MODULE, &(const eUSCI_UART_Config) { EUSCI_A_UART_CLOCKSOURCE_SMCLK, 6, 8, 0, EUSCI_A_UART_NO_PARITY, EUSCI_A_UART_LSB_FIRST, EUSCI_A_UART_ONE_STOP_BIT, EUSCI_A_UART_MODE, EUSCI_A_UART_OVERSAMPLING_BAUDRATE_GENERATION }); // 使能UART模块 MAP_UART_enableModule(UART_MODULE); // 发送数据 UARTSend("Hello, world!\r\n", 15); while(1); return 0; } ``` 在上面的代码中,我们定义了一个`UARTSend()`函数,它接受一个指向要发送数据的缓冲区的指针和数据的长度。函数使用`UART_transmitData()`函数将数据写入TXBUF寄存器,从而发送数据。在主函数中,我们初始化了MSP432的时钟和GPIO,并初始化了UART模块。最后,我们调用`UARTSend()`函数发送数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NULL指向我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值