#include "ti_msp_dl_config.h"
#include "oled.h"
#include "stdio.h"
uint8_t Serial_TxPacket[4]; //定义发送数据包数组,数据包格式:aa bb 01 02 03 04 cc
/**
* 函 数:串口发送一个字节
* 参 数:Byte 要发送的一个字节
* 返 回 值:无
*/
void Serial_SendByte(uint8_t Byte)
{
DL_UART_Main_transmitDataBlocking(UART_0_INST ,Byte); //将字节数据写入数据寄存器,写入后USART自动生成时序波形
}
/**
* 函 数:串口发送一个数组
* 参 数:Array 要发送数组的首地址
* 参 数:Length 要发送数组的长度
* 返 回 值:无
*/
void Serial_SendArray(uint8_t *Array, uint16_t Length)
{
uint16_t i;
for (i = 0; i < Length; i ++) //遍历数组
{
Serial_SendByte(Array[i]); //依次调用Serial_SendByte发送每个字节数据
}
}
/**
* 函 数:串口发送数据包
* 参 数:无
* 返 回 值:无
* 说 明:调用此函数后,Serial_TxPacket数组的内容将加上包头(FF)包尾(FE)后,作为数据包发送出去
*/
void Serial_SendPacket(void)
{
Serial_SendByte(0xaa);
Serial_SendByte(0xbb);
Serial_SendArray(Serial_TxPacket, 4);
Serial_SendByte(0xcc);
}
int main(void)
{
uint8_t str[64];
SYSCFG_DL_init();
NVIC_ClearPendingIRQ(UART_0_INST_INT_IRQN); //先清除一下中断,防止直接接入中断
NVIC_EnableIRQ(UART_0_INST_INT_IRQN); //开启串口的中断
OLED_Init();
OLED_Fill(0x00);
OLED_ShowStr(0,0,(unsigned char*)("MSPM0G3507"),1);
while (1)
{
// sprintf((char *)str, "%d", a1);
// OLED_ShowStr(0,2, str,2);
// sprintf((char *)str, "%d", a2);
// OLED_ShowStr(0,4, str,2);
// sprintf((char *)str, "%d", a3);
// OLED_ShowStr(100,0, str,2);
// sprintf((char *)str, "%d", b);
// OLED_ShowStr(0,6, str,2);
// b++;
// DL_UART_Main_transmitDataBlocking(UART_0_INST ,0x01); //给K210发送1第一题
// delay_ms(1000);
// DL_UART_Main_transmitDataBlocking(UART_0_INST ,2); //给K210发送2第二题
// delay_ms(1000);
Serial_TxPacket[0] =0x11; //测试数据自增
Serial_TxPacket[1] =11;
Serial_TxPacket[2] ='11';
Serial_TxPacket[3] =0xaa;
Serial_SendPacket();
delay_ms(2000);
}
}
//无论发的是什么,最后都会转化成16进制的东西进行发送
MSPM0G3507——发送数据包
于 2024-07-23 14:58:41 首次发布