中级会员
 
- 积分
- 213
- 金钱
- 213
- 注册时间
- 2020-7-3
- 在线时间
- 71 小时
|

楼主 |
发表于 2020-11-27 20:53:19
|
显示全部楼层
本帖最后由 暮二木 于 2020-11-27 21:04 编辑
C:\Users\song\Desktop在进入HardFault_Handler(void)这个函数前是串口的发送数据的函数void HMI_SendNum(USART_TypeDef* USARTx,u8 *data,u8 len,u16 Num,u8 len2)
{
u8 t;
for(t=0;t<len;t++)
{
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);//读取串口状态,等待发送结束
USART_SendData(USARTx,data[t]);
}
for(t=0;t<len2;t++)
{
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
USART_SendData(USARTx,48+(Num/HMI_Pow(len2-t-1))%10); ////转化为字符型+48
}
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
USART_SendData(USARTx,0XFF);
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
USART_SendData(USARTx,0XFF);
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
USART_SendData(USARTx,0XFF);
}
//字符串发送函数:HMI_SendText(USART_TypeDef* USARTx,u8 *data,u8 len,u8 *text,u8 len2)
// USART_TypeDef* USARTx: 选择串口输出,注意必须先初始化、使能该串口
// u16 *data:上位机上文本位相应的改变数值代码,如"t0.txt="、"t1.txt="
// u8 len:*data代码的长度。如"t0.txt="长度为7。
// u8 *text:需要串口输出显示的文本
// u8 len2:需要显示的文本的长度,英文一个字符一字节、汉字一个字两个字节
void HMI_SendText(USART_TypeDef* USARTx,u8 *data,u8 len,u8 *text,u8 len2)
{
u8 t;
for(t=0;t<len;t++)
{
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
USART_SendData(USARTx,data[t]);
}
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
USART_SendData(USARTx,0X22);
for(t=0;t<len2;t++)
{
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
USART_SendData(USARTx,text[t]);
}
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
USART_SendData(USARTx,0X22);
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
USART_SendData(USARTx,0XFF);
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
USART_SendData(USARTx,0XFF);
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)!=SET);
USART_SendData(USARTx,0XFF);
}
也没用到什么数组指针的什么的 |
-
|