初级会员
- 积分
- 54
- 金钱
- 54
- 注册时间
- 2016-6-22
- 在线时间
- 8 小时
|
1金钱
本帖最后由 sdzhang1 于 2016-9-28 16:15 编辑
各位大侠,我在用STm32f103的串口来发送数据,可不知为啥在加上OS_CRITICAL_ENTER(); OS_CRITICAL_EXIT();来保护数据时在发送时最后一个数总数0xff,去掉OS_CRITICAL_ENTER(); OS_CRITICAL_EXIT();时则发送时就会少一个数据,望各位不吝指教具体程序如下:
uint8_t i;
OS_ERR err;
CPU_SR_ALLOC();
CPU_TS ts;
(void)p_arg;
while (DEF_TRUE) /* Task body, always written as an infinite loop. */
{
OSTaskSemPend( 0, //óàÔ¶2»»á3¬ê±ò»Ö±Ôúμè′y
OS_OPT_PEND_BLOCKING, //èç1ûDÅoÅá¿2»¿éóþíμè′y
&ts, //»ñè¡DÅoÅ῱»·¢2¼μÄê±¼ä′á
&err); //·μ»Ø′íÎóààDí
OS_CRITICAL_ENTER(); //½øèëáù½ç¶Î£¬±üÃa′®¿ú·¢Ëí±»′ò¶Ï
Uart5_Init(); //ÿ′η¢Ëíêy¶¼¶Ô′®¿ú½øDD3õê¼»ˉ
UART5_TX_ON; //·¢Ëíê1Äü
Uart5_Send_char(0x01);
Uart5_Send_char(0x03);
Uart5_Send_char(0x00);
Uart5_Send_char(0x07);
Uart5_Send_char(0x00);
Uart5_Send_char(0x06);
Uart5_Send_char(0x74);
Uart5_Send_char(0x09);
OS_CRITICAL_EXIT();
|
|