目录
轮询
ptintf
中断方式
DMA方式
轮询
串口要加入这两个文件
bug在于接到10个后会一直发送
ptintf
function buffPtr = convert(buff)
if coder.target('Sfun')%固定句式
%Executing in MATLAB, Buff is null
buffPtr = uint32(0);
else
coder.cinclude('getBuffPtr.h');%加入头文件 c include
coder.cinclude('stdio.h');
string = char(zeros(1,20));%一个1*20的矩阵,二维数组 初始化
stringSize = uint16(size(string,2));%取上一个变量的第二位即列向量,就是20,第一位是1
% 相当于连写 %s\r\n加字符串结束符,后面按照%s格式转换
stringFormat = char(['%s',13,10,0]);%13 10 0 对应\r\n\0
%coder.ceval(cfun_name,cfun_arguments) 使用参数 cfun_arguments 执行 cfun_name。
%cfun_arguments 是按照 cfun_name 要求的顺序排列的逗号分隔的输入参数列表。
%snprintf(),函数原型为int snprintf(char *str, size_t size, const char *format, ...)。
%将可变参数 “…” 按照format的格式格式化为字符串,然后再将其拷贝至str中。并给其后添加一个字符串结束符('\0')
%把buff按照coder.rref(stringFormat)格式发送给string,最多stringSize个
%相当于把buff按照%s格式转换,\r\n保留,结束符为自动自带的,不进行发送
% == printf("%s\r\n",buff)
coder.ceval('snprintf',coder.wref(string),stringSize,coder.rref(stringFormat),buff); % c eval 重新运算求出参数的内容
%调用c语言的getBuffPtr(),找到首地址
buffPtr = coder.ceval('getBuffPtr',coder.rref(string));
end
end
源码
void untitled_step(void)
{
char_T string_0[20];
static const char_T stringFormat[5] = { '%', 's', '\x0d', '\x0a', '\x00' };
uint8_T tmp[31];
int32_T i;
/* MATLAB Function: '<Root>/MATLAB Function' */
for (i = 0; i < 31; i++) {
tmp[i] = rtConstB.StringtoASCII[i];
}
snprintf(string_0, 20, stringFormat, tmp);
rtDW.buffPtr = getBuffPtr(string_0);
/* End of MATLAB Function: '<Root>/MATLAB Function' */
/* S-Function (USART_Send): '<Root>/USART_Send' */
{
if (rtConstB.Add != 0) {
/* Copy data to send. */
TX_CopyData(&USART1_TxConf, (uint8_t*)rtDW.buffPtr, (uint16_t)rtConstB.Add);
}
if (USART1_TxConf.nb2Send) {
rtDW.USART_Send = 0;
USART1_TX_SendData(&USART1_TxConf);
}
if (USART1_TxConf.txStatus != SERIAL_TX_ON) {
rtDW.USART_Send = USART1_TxConf.nbSent;
}
USART1_TxConf.txStatus = SERIAL_TX_OFF;
}
}
中断方式
先在cubemx配置好中断
DMA方式
文章来源地址https://www.toymoban.com/news/detail-526522.html文章来源:https://www.toymoban.com/news/detail-526522.html
到了这里,关于MBD开发 STM32 UASRT的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!